centos7下部署Django(nginx+uwsgi+python3+django)
系統(tǒng)版本
centos7
python版本
使用官方python3.6.3正式版
django版本
使用本文發(fā)布時(shí)最新的1.11.7
uwsgi版本
使用本文發(fā)布時(shí)最新的2.0.15
nginx版本
使用本文發(fā)布時(shí)官網(wǎng)最新的1.13.7
進(jìn)入正題盐捷,一行命令吝梅,一行注釋栏账,使用root身份登錄系統(tǒng)執(zhí)行
1宫蛆、安裝各類基礎(chǔ)模塊
yum gcc-c++
(為centos系統(tǒng)增加編譯功能)
yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
(安裝這些模塊都是為了成功編譯安裝python3运吓,防止出現(xiàn)各種異常)
yum install libxml*
(安裝這個(gè)模塊是為了讓uwsig支持使用“-x"選項(xiàng)跌穗,能通過(guò)xml文件啟動(dòng)項(xiàng)目)
2佃声、編譯安裝python3
進(jìn)入home路徑(本人喜歡把東西都下載到這里),執(zhí)行以下命令:
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
下載完成后偷霉,執(zhí)行解壓命令:
tar -zxvf Python-3.6.3.tar.gz
進(jìn)入解壓后的Python-3.6.3文件夾迄委,依次執(zhí)行以下命令
./configure --prefix=/usr/local/python3
(將python3安裝到/usr/local/python3/路徑下)
make -j2
make install -j2
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
(以上兩個(gè)ln命令是為了方便在終端中直接使用python3和pip3命令)
3、給python3安裝django和uwsgi以及配置啟動(dòng)項(xiàng)目的xml文件
pip3 install django
pip3 install uwsgi
為了在終端中使用uwsgi命令类少,執(zhí)行以下命令
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
將你的django項(xiàng)目放到你想放的路徑下叙身,例如/home/www/,假設(shè)我們的Django項(xiàng)目名為"myproject",里面有一個(gè)應(yīng)用叫"myapp"
在你的django項(xiàng)目下新建 myproject.xml硫狞,內(nèi)容如下:
<uwsgi>
<socket>127.0.0.1:8997</socket><!-- 內(nèi)部端口信轿,自定義 -->
<chdir>/home/www/myproject</chdir><!-- 項(xiàng)目路徑 -->
<module>myproject.wsgi</module>
<processes>4</processes> <!-- 進(jìn)程數(shù) -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
wq保存
4赞警、安裝nginx和配置nginx.conf文件
進(jìn)入home目錄,執(zhí)行以下命令:
wget http://nginx.org/download/nginx-1.13.7.tar.gz
下載完成后虏两,執(zhí)行解壓命令:
tar -zxvf nginx-1.13.7.tar.gz
進(jìn)入解壓后的nginx-1.13.7文件夾愧旦,依次執(zhí)行以下命令:
./configure
make
make install
nginx一般默認(rèn)安裝好的路徑為/usr/local/nginx
在/user/local/nginx/conf/中打開(kāi)nginx.conf,加入以下內(nèi)容
server {
listen 8996; #暴露給外部訪問(wèn)的端口
server_name localhost;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8997; #外部訪問(wèn)8996就轉(zhuǎn)發(fā)到內(nèi)部8997
}
location /static/ {
alias /home/www/myproject/myapp/static/; #項(xiàng)目靜態(tài)路徑設(shè)置
}
}
(以上內(nèi)容請(qǐng)保證在默認(rèn)內(nèi)容的大括號(hào)內(nèi))
wq保存后進(jìn)入/usr/local/nginx/sbin/目錄
執(zhí)行./nginx -t
命令先檢查配置文件是否有錯(cuò)定罢,沒(méi)有錯(cuò)就執(zhí)行以下命令:
./nginx
終端沒(méi)有任何提示就證明nginx啟動(dòng)成功笤虫,可以通過(guò)鏈接查看nginx是否啟動(dòng)成功:
http://192.168.1.111 (請(qǐng)將該ip替換成你的服務(wù)器ip)
5、訪問(wèn)項(xiàng)目頁(yè)面
進(jìn)入你的django項(xiàng)目路徑祖凫,執(zhí)行以下命令:
uwsgi3 -x myproject.xml
以上步驟都沒(méi)有出錯(cuò)的話琼蚯,打開(kāi)你的瀏覽器,輸入以下鏈接惠况,記得關(guān)閉系統(tǒng)防火墻或者開(kāi)放8996端口
http://192.168.1.111:8996 (請(qǐng)將該ip替換成你的服務(wù)器ip)
網(wǎng)站訪問(wèn)成功遭庶!