項目示例
pycharm編譯好的項目
阿里云服務器域名
成果展示
如果不能訪問,可能端口已經關閉。
遇到的問題一大堆,大量使用網上文章,如有問題,進行留言聯系。
簡單做一個記錄供自己查閱和檢索,以備下次服務器搭建,這樣可以減少時間成本。
僅供個人記錄使用!本文不是教程
僅供個人記錄使用!本文不是教程
僅供個人記錄使用!本文不是教程
選擇的是cento7的云系統
Linux yun 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep
12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
首先默認沒有python3,用官網的安裝,安裝好了有沒有pip3沒辦法安裝django和pymysql。親測成功!
解決方案:https://www.aliyun.com/jiaocheng/527141.html
1.安裝依賴包bzip2安裝anaconda前,要先安裝個解壓縮工具bzip2,打開阿里云ECS實例的遠程連接,輸入下面命令,即可完成安裝:
yum install bzip2
2.安裝anaconda3(1)下載anaconda3安裝包,輸入命令:
wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh
如果速度慢的話,可以在本地下載后,上傳到服務器root目錄里。

(2)安裝anaconda3,根據以下屏幕提示依次完成。
輸入命令:sh Anaconda3-4.3.1-Linux-x86_64.sh


慢敲回車ENTER鍵,47下左右,屏幕提示是否接受許可協議?輸入yes。
輸入指定安裝路徑:/usr/local/anaconda3

屏幕提示是否將安裝路徑寫入PATH環境變量,輸入yes,回車,安裝完成。

重新登錄遠程連接,輸入python,默認即是python3.6版本啦,是不是極其簡單呢?

TIPS:1.安裝python的依賴包。參考鏈接
安裝python或者anaconda前,可能需要先安裝一些依賴包(例如解壓工具bzip2),否則會報錯。
已知的一些常用依賴包如下,可根據需要選擇安裝:
在 CentOS/RHEL/Fedora 下:
sudo yum install readline readline-devel readline-static
sudo yum install openssl openssl-devel openssl-static
sudo yum install sqlite-devel
sudo yum install bzip2-devel bzip2-libs
在 Ubuntu下:
sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev
答案是:Automake工具定義了下面的一組變量:
Directory?variable??Default?value
prefix??/usr/local
exec_prefix???${prefix}
bindir??${exec_prefix}/bin
libdir??${exec_prefix}/lib
…
includedir????${prefix}/include
datarootdir???${prefix}/share
datadir?${datarootdir}
mandir??${datarootdir}/man
infodir?${datarootdir}/info
docdir??${datarootdir}/doc/${PACKAGE}
…
而GUN下面絕大部分應用的編譯系統都是用automake。
于是乎,你看到的很多很多應用都安裝在了/usr/local/目錄下。
解決了python3的問題以后mysql默認也沒安裝!
到官網下載好rpm安裝包,附贈我的鏈接,下載名字的包
RPM Package, MySQL Server
安裝教程:https://www.cnblogs.com/shuangzikun/p/taotao_linux_mysql_install.html
較有參考價值的文章:https://blog.csdn.net/a774630093/article/details/79270080
從第四步開始














安裝的環境基本搞定了!再就是使用navicat連接阿里云mysql
這里需要配置的比較多,很容易出錯
首先開放端口,添加用戶,添加安全組,如果有防火墻也要關閉
https://blog.csdn.net/antony9118/article/details/77835715
首先創建安全組,然后再安全組中添加規則,如下所示,詳情可以參考官方文檔
https://helpcdn.aliyun.com/document_detail/25471.html?spm=5176.doc25468.2.4.RfJyPU
添加規則之后,再用navicat連,報另一條錯誤
1045 access denied for user'root'@'localhost' using password yes
- 1
猜想是因為我本地使用root用戶登錄navicat,而root用戶并沒有開放外部的訪問權限,而是只能localhost訪問
下一步登陸mysql數據庫,使用命令
果然root用戶的訪問權限是localhost,并不能從外部進行訪問,需要手動賦權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
- 1
好了,這下又報錯
Your password does not satisfy the current policy requirements
- 1
也就是密碼強度不符合,我也是醉了,使用下面的命令可以查看設置的密碼強度校驗規則
SHOW VARIABLES LIKE 'validate_password%';
- 1
果然是有很麻煩的校驗,網上有很多去除這個校驗的方法,不過都需要修改配置文件然后重啟數據庫,個人覺得有點麻煩,還有一種臨時辦法可以去除密碼強度校驗(不過下次登錄又得用一遍,好處是不需要重啟)
set global validate_password_policy=0;
- 1
好了,再輸入上面的對root用戶賦權的命令,大功告成
OK,到這里,服務器的3306端口也對外開放了,root用戶也可以從外部進行訪問了,navicat連接成功
大致到這里解決了很多問題,當然有的問題,也要百度。下面說一下setting.py的配置
數據庫的配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql','NAME': 'book_manager',這個是你數據庫的名字,連接上數據庫后,你要先創建'USER': 'root','PASSWORD': 'xxxx',這個密碼是數據庫root用戶的密碼'HOST': '39.107.87.114',這個host是你公網的host'PORT': '3306'這個端口是數據庫默認端口,需要在安全組里面打開}
}
連接配置
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']這是允許所有用戶都可以訪問!因為是自己學習使用,所以也沒有那么多嚴格的限制
怎么運行項目
python manage.py runserver 0.0.0.0:8000
其他問題
MySQL 5.7 Access denied for user ‘root’@‘localhost’ (using password YES)
這個問題不要按照網上的操作進行設置,首先還是檢查自己密碼的問題
# service mysqld restart 報錯 Redirecting to /bin/systemctl restart mysqld.service
解決辦法
使用如下命令操作mysql:
systemctl restart mysqld.service
systemctl start mysqld.service
systemctl stop mysqld.service
ModuleNotFoundError: No module named '_ctypes’報錯
這個操作要進入root用戶!進行安裝
可參考網上教程:https://blog.csdn.net/qq_36416904/article/details/79316972
http://blog.51cto.com/maoxiaoxiong/2172785