Linux 搭建Django環境 + nginx + virtualenv虛擬環境

Linux 搭建Django環境 + nginx + virtualenv虛擬環境

整理來源:https://www.django.cn/article/show-4.htmlhtml

第一步:安裝寶塔 (用於可視化,方便管理,後期裝數據庫方便)

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

第二步:使用 寶塔 安裝數據庫

略。

第三步:

1、更新系統軟件包

yum update -y

2、安裝軟件管理包和可能使用的依賴

yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc

3、下載Pyhton3到/usr/local 目錄

cd /usr/local
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

解壓python

tar -zxvf Python-3.6.6.tgz

進入 Python-3.6.6路徑linux

cd Python-3.6.6

編譯安裝到指定路徑nginx

./configure --prefix=/usr/local/python3

注意:/usr/local/python3 路徑能夠本身指定,本身記着就行,下邊要用到。web

安裝python3sql

make
make install

安裝完成以後 創建軟連接 添加變量 方便在終端中直接使用python3數據庫

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

Python3安裝完成以後pip3也一塊安裝完成,不須要再單獨安裝
一樣給pip3創建軟連接django

ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

4、查看Python3和pip3安裝狀況

python3
pip3 -v

5、安裝virtualenv ,建議你們都安裝一個virtualenv,方便不一樣版本項目管理。

pip3 install virtualenv

創建軟連接bash

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

安裝成功在根目錄下創建兩個文件夾,主要用於存放env和網站文件的。(我的習慣,其它人可根據本身的實際狀況處理)服務器

mkdir -p /data/env
mkdir -p /data/wwwroot

6、切換到/data/env/下,建立指定版本的虛擬環境。

/data/env/
virtualenv --python=/usr/bin/python3 pyweb

而後進入/data/env/pyweb/bin
啓動虛擬環境:

cd /data/env/pyweb/bin 
source activate
右下角出現(pyweb),說明是成功進入虛擬環境。

7、虛擬環境裏用pip3安django和uwsgi

pip3 install django==1.11.11 (指定安裝和你項目相同的版本)
pip3 install uwsgi

留意:uwsgi要安裝兩次,先在系統裏安裝一次,而後進入對應的虛擬環境安裝一次。

給uwsgi創建軟連接,方便使用

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

8、本地項目搬遷到服務器

一、修改Django配置settings文件中ALLOWED_HOSTS,['*'],可讓任何IP訪問

一、在項目目錄下用下面的命令把當前的環境依賴包導出到requirements.txt文件

pip freeze > requirements.txt

二、把項目源碼壓縮打包。上傳到服務器對應的目錄裏,解壓。

三、進入虛擬環境

cd /data/env/pyweb/bin
source activate

四、進入項目路徑安裝requirements.txt裏的依賴包。

pip3 install -r requirements.txt

五、經過python3 manage.py runserver 運行一下項目,若是能正常啓動則進行下一步,不能正常運行往上檢查。

9、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>

保存
注意 裏的mysite,爲wsgi.py所在的目錄名。

10、安裝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裏設置:

​ 一、關閉DEBUG模式。

​ DEBUG = False

​ 二、ALLOWED_HOSTS設置爲* 表示任何IP均可以訪問網站。

​ ALLOWED_HOSTS = ['*']

十5、訪問項目的頁面。

每次項目啓動方式

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  # 結束後臺

成功訪問!
裏面最值得留意的就是項目的路徑不要弄錯,還有,項目的全部操做都要在虛擬環境下進行。

環境部署部份,懶的話,直接複製個人代碼直接部署就行。

相關文章
相關標籤/搜索