Linux 搭建Django環境 + nginx + virtualenv虛擬環境
整理來源:https://www.django.cn/article/show-4.html
第一步:安裝寶塔 (用於可視化,方便管理,后期裝數據庫方便)
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
第二步:使用 寶塔 安裝數據庫
略。
第三步:
一、更新系統軟件包
yum update -y
二、安裝軟件管理包和可能使用的依賴
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc
三、下載Pyhton3到/usr/local 目錄
cd /usr/local
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
解壓
tar -zxvf Python-3.6.6.tgz
進入 Python-3.6.6路徑
cd Python-3.6.6
編譯安裝到指定路徑
./configure --prefix=/usr/local/python3
注意:/usr/local/python3 路徑可以自己指定,自己記着就行,下邊要用到。
安裝python3
make
make install
安裝完成之后 建立軟鏈接 添加變量 方便在終端中直接使用python3
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
Python3安裝完成之后pip3也一塊安裝完成,不需要再單獨安裝
同樣給pip3建立軟鏈接
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
四、查看Python3和pip3安裝情況
python3
pip3 -v
五、安裝virtualenv ,建議大家都安裝一個virtualenv,方便不同版本項目管理。
pip3 install virtualenv
建立軟鏈接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
安裝成功在根目錄下建立兩個文件夾,主要用於存放env和網站文件的。(個人習慣,其它人可根據自己的實際情況處理)
mkdir -p /data/env
mkdir -p /data/wwwroot
六、切換到/data/env/下,創建指定版本的虛擬環境。
/data/env/
virtualenv --python=/usr/bin/python3 pyweb
然后進入/data/env/pyweb/bin
啟動虛擬環境:
cd /data/env/pyweb/bin
source activate
右下角出現(pyweb),說明是成功進入虛擬環境。
七、虛擬環境里用pip3安django和uwsgi
pip3 install django==1.11.11 (指定安裝和你項目相同的版本)
pip3 install uwsgi
留意:uwsgi要安裝兩次,先在系統里安裝一次,然后進入對應的虛擬環境安裝一次。
給uwsgi建立軟鏈接,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
八、本地項目搬遷到服務器
1、修改Django配置settings文件中ALLOWED_HOSTS,['*'],可以讓任何IP訪問
1、在項目目錄下用下面的命令把當前的環境依賴包導出到requirements.txt文件
pip freeze > requirements.txt
2、把項目源碼壓縮打包。上傳到服務器對應的目錄里,解壓。
3、進入虛擬環境
cd /data/env/pyweb/bin
source activate
4、進入項目路徑安裝requirements.txt里的依賴包。
pip3 install -r requirements.txt
5、通過python3 manage.py runserver 運行一下項目,如果能正常啟動則進行下一步,不能正常運行往上檢查。
九、Django正常運行之后我們就開始配置一下uwsgi。
我們網站項目路徑是 /data/wwwroot/mysite/,在項目根目錄下創建
mysite.xml文件,輸入如下內容:
<uwsgi>
<socket>127.0.0.1:8997</socket> <!-- 內部端口,自定義 -->
<chdir>/data/wwwroot/mysite/</chdir> <!-- 項目路徑 -->
<module>mysite.wsgi</module> <!-- mysite為wsgi.py所在目錄名-->
<processes>4</processes> <!-- 進程數 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
保存
注意
十、安裝nginx和配置nginx.conf文件
進入home目錄,執行下面命令
cd /home/
wget http://nginx.org/download/nginx-1.13.7.tar.gz
下載完成后,執行解壓命令:
tar -zxvf nginx-1.13.7.tar.gz
進入解壓后的nginx-1.13.7文件夾,依次執行以下命令:
./configure
make
make install
nginx一般默認安裝好的路徑為/usr/local/nginx
在/usr/local/nginx/conf/中先備份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak
然后打開nginx.conf,把原來的內容刪除,直接加入以下內容:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name www.django.cn; #改為自己的域名,沒域名修改為127.0.0.1:80
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8997; #端口要和uwsgi里配置的一樣
uwsgi_param UWSGI_SCRIPT mysite.wsgi; #wsgi.py所在的目錄名+.wsgi
uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #項目路徑
}
location /static/ {
alias /data/wwwroot/mysite/static/; #靜態資源路徑
}
}
}
要留意備注的地方,要和UWSGI配置文件mysite.xml,還有項目路徑對應上。
進入/usr/local/nginx/sbin/目錄
執行./nginx -t命令先檢查配置文件是否有錯,沒有錯就執行以下命令:
./nginx
終端沒有任何提示就證明nginx啟動成功。可以使用你的服務器地址查看,成功之后就會看到一個nginx歡迎頁面。
之后,在settings.py里設置:
1、關閉DEBUG模式。
DEBUG = False
2、ALLOWED_HOSTS設置為* 表示任何IP都可以訪問網站。
ALLOWED_HOSTS = ['*']
十五、訪問項目的頁面。
每次項目啟動方式
cd /data/env/pyweb/bin 進入虛擬環境
source activate 啟動虛擬環境
啟動nginx
cd /usr/local/nginx/sbin/
./nginx
啟動 ( mysite 為你自己的項目名 )
cd /data/wwwroot/mysite
uwsgi -x mysite.xml
啟動項目(建議使用下面的后台執行,80為項目端口)
python3 manage.py runserver 0.0.0.0:80
在后台執行 (執行完以后需要用’exit‘正常退出Linux系統):
nohup python manage.py runserver 0.0.0.0:80 2>log &
ps -aux 查詢所有后台程序
kill DIP # 結束后台
成功訪問!
里面最值得留意的就是項目的路徑不要弄錯,還有,項目的所有操作都要在虛擬環境下進行。
環境部署部份,懶的話,直接復制我的代碼直接部署就行。
