前幾天阿里云搞活動(dòng),云服務(wù)器ECS活動(dòng),30元一個(gè)月,沒禁住誘惑買了一年,那好吧,就把我之前練手做的Django項(xiàng)目部署一下傳送門 ,這個(gè)項(xiàng)目是什么就不細(xì)說了,本文主要說的是部署到阿里云
先說下我的環(huán)境,免得有的哥們對(duì)照我的這個(gè)做出來,發(fā)現(xiàn)不能用:
系統(tǒng)ubuntu16.04、python2.7.12、django1.10.6、mysql5.7、apache2.4.18
買了阿里云回來,發(fā)現(xiàn)里面有python2.7,那正好,我的項(xiàng)目就是2.7版本,不需要改了
然后就是按照網(wǎng)上教程的套路pip install Django、sudo apt-get install Apache2等等,但是發(fā)現(xiàn)不行,我真的不知道是為啥,連apache登錄的記錄都沒有,那么如果你正在部署而且與我的環(huán)境一樣,請(qǐng)按照我下面的步驟,不敢保證百分百成功,但是至少可以借鑒:
1.安裝django1.10.6? ? pip install Django==1.10.6
2.安裝mysql? sudo apt-get install mysql-server mysql-client ,因?yàn)槲业南到y(tǒng)版本是16.04,所以下載好之后就是5.7的
3.因?yàn)槟闶遣渴餌jango,所以你的django項(xiàng)目里settings.py肯定連接的你的數(shù)據(jù)庫(kù),那么請(qǐng)你這時(shí)候配置mysql的時(shí)候按照原來的數(shù)據(jù)配置,免得出現(xiàn)未知錯(cuò)誤,主要就是數(shù)據(jù)庫(kù)的登錄密碼和新建數(shù)據(jù)庫(kù)【這個(gè)不會(huì)的話就自己百度】
4.數(shù)據(jù)庫(kù)建好了后,如果你原先的數(shù)據(jù)庫(kù)使用的字符集是utf-8,就需要修改字符集,否則傳數(shù)據(jù)的時(shí)候有異常,字符集修改,命令 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf,【vi 指令,不會(huì)的話,也是百度學(xué)習(xí)】,在[mysqld]域下加上:character-set-server=utf8,再重新啟動(dòng) MySQL 服務(wù)即可:sudo systemctl restart mysql
5.如果你的原工程使用過數(shù)據(jù)庫(kù),并且在moudle中沒有刪除0001_initial.py,那就到對(duì)應(yīng)的目錄下用rm -fr 0001_initial.py的撒謊年初該文件,之后到django的目錄下用 python manage.py makemigrations 和 python manage.py migrate 把數(shù)據(jù)表新建上去
6.這時(shí)候就可以查看你的django工程是否已經(jīng)安裝好了,python manage.py runserver 0.0.0.0:8000,正確運(yùn)行就說明django是沒有問題的,那么下面就開始部署到apache2中,但是如果出現(xiàn)python未連接mysql的話,就需要安裝pymysql , sudo pip install pymysql,安裝好在啟動(dòng)一次,測(cè)試是否成功,如果沒有的話,請(qǐng)檢查以上步驟,你是否正確
7.先sudo apt-get install httpie裝一個(gè)測(cè)試網(wǎng)絡(luò)的工具吧,下面會(huì)用的
8.安裝apache2, sudo apt-get install apache2,安裝好之后注意了,不要按照網(wǎng)上說的在 /etc/apache2/sites-available目錄下vi xxx.conf,然后重啟apache2服務(wù)器,這樣不行,可能是我的方法問題,但是我真的沒打開過網(wǎng)頁(yè)
9.我是這么做的,我在/etc/apache2/目錄下,打開apache2.conf按照下圖的形式添加【紅色框框是我自己新加的內(nèi)容】,我的django工程是放在/var/www/下的

10.然后有人會(huì)說,要配置wsgi.py,真的不要配置,就這樣就好了,重啟apache2?? service apache2 restart,之前不是安裝過httpie么,現(xiàn)在就用上了,http 127.0.0.1:8000測(cè)試你的工程通了沒,然后在測(cè)試公網(wǎng)IP,如果是和我一樣的阿里云還需要配置安全組【這個(gè)在阿里云網(wǎng)站配置,在你的控制臺(tái)左下方有個(gè) 安全組,然后在入方向添加安全組規(guī)則就好了】
說下service apache2 restart會(huì)遇到問題,有時(shí)候會(huì)遇到j(luò)ob for apache2.server faild because the control process exited with error code ....這個(gè)很有可能是你的配置文件寫錯(cuò)了,請(qǐng)自己仔細(xì)檢查一下
大概就這么些內(nèi)容,如果你在部署中有遇到問題,也歡迎留言