歡迎您光臨本站 註冊首頁

Nginx+Uwsgi+Django 項目部署到服務器的思路詳解

←手機掃碼閱讀     月球人 @ 2020-05-08 , reply:0

首先先說一下思路:
1.本地django項目打包 主要用到的是 python自帶的distutils.core 下的 setup,具體代碼在下面,主要講的兩個問題是package主要打包為和目錄同級的代碼,例如:TCMS如果還有一個子文件夾,那就不能自動打包了。這個時候需要用到data_files。glob(*filename)文件名模式匹配,不用遍歷整個目錄判斷每個文件是不是符合。
from distutils.core import setup import glob setup( name = "demo", version = "0.1", packages = ['author_zxx','TCMS','static'], data_files= glob.glob('templates/*.html') )
2.打包用到的木塊,也就是python的庫,pip freeze >> requirement.txt (requirement.txt 問文件名,隨便起)
pip freeze > requeirement.txt
3.服務器安裝虛擬環境(非常重要,這一步一定要在開始。)
yum install virtualenv yum install cirtualenvwrapper
4.創建虛擬環境 並且 指定虛擬換 用到的python 解釋器版本
# 創建一個項目目錄 cd my_project # 創建虛擬環境 my_project_env 為虛擬環境的名稱 virtualenv my_project_env # 指定虛擬環境所用到的python解釋器版本 -p後面為python解釋器存放的路徑, my_project_env 為虛擬環境的名稱 virtualenv -p /usr/bin/python2.7 my_project_env # 創建完成虛擬環境之後會生成一個文件夾,之後在bin文件夾中會有一個activate,我們在使用虛擬環境需要激活虛擬環境,source activate。 source my_project_env/bin/activate #退出虛擬環境 deactivate
5.在虛擬環境中安裝django 和 uwsgi 。要指定安裝版本和開發環境要一樣
pip install django==3.0.4 pip install uwsgi
6.創建django中的項目
# . 表示在當前目錄下創建,如果不加,會在project_name 下創建一個同名的目錄。 django-admin startproject 'project_name' .
7. 將項目通過FileZilla 或者其他交互軟件,傳入到剛剛所創建的目錄中。
8.項目上傳完畢之後,需要安裝我們所需要的包。
# 剛剛 pip freeze > requirement.txt 所得 pip install -r requirement.txt
9.完成之後,可以通過 python manage.pu runserver 進行測試,是否成功。顯示出下面得內容,即為成功。
May 08, 2020 - 10:53:33 Django version 3.0.4, using settings 'TsmWeb.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
10.之後我們需要安裝uwsgi替我們代替 python manage.py runserver. 因為在生產環境中我們不可能一直手動得去開啟服務器,這個時候就需要uwsgi,剛剛已經安裝過uwsgi。我們在服務器項目目錄下創建一個test.py 文件。
# test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World"
11. 之後在linux 命令行輸入
uwsgi --http :8001 --wsgi-file /‘路徑,從跟開始'/test.py
如果出現下面得代碼,則表示成功:
*** Starting uWSGI 2.0.18 (64bit) on [Fri May 8 11:00:36 2020] *** compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-39) on 07 May 2020 02:26:03 os: Linux-3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020
12.之後我們需要安裝Nginx
yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install gcc-c++ yum install -y openssl openssl-devel wget -c https://nginx.org/download/nginx-1.14.0.tar.gz tar -zxvf nginx-1.14.0.tar.gz cd nginx-1.14.0 ./configure make make install
13.之後測試nginx是否可以正常使用,我們需要進到nginx文件下得sbin/ 目錄,運行 ./nginx ,之後在瀏覽器訪問我們地址即可。如果出現 Welcome to Nginx! 即表示成功
14.現在是nginx和uwsgi配置,這個也是最頭疼的。


[月球人 ] Nginx+Uwsgi+Django 項目部署到服務器的思路詳解已經有271次圍觀

http://coctec.com/docs/python/shhow-post-233330.html