Nginx+Uwsgi+Django 項(xiàng)目部署到服務(wù)器的思路詳解
首先先說(shuō)一下思路:
1.本地django項(xiàng)目打包 主要用到的是 python自帶的distutils.core 下的 setup,具體代碼在下面,主要講的兩個(gè)問(wèn)題是package主要打包為和目錄同級(jí)的代碼,例如:TCMS如果還有一個(gè)子文件夾,那就不能自動(dòng)打包了。這個(gè)時(shí)候需要用到data_files。glob(*filename)文件名模式匹配,不用遍歷整個(gè)目錄判斷每個(gè)文件是不是符合。
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的庫(kù),pip freeze >> requirement.txt (requirement.txt 問(wèn)文件名,隨便起)
pip freeze > requeirement.txt
3.服務(wù)器安裝虛擬環(huán)境(非常重要,這一步一定要在開(kāi)始。)
yum install virtualenv yum install cirtualenvwrapper
4.創(chuàng)建虛擬環(huán)境 并且 指定虛擬換 用到的python 解釋器版本
# 創(chuàng)建一個(gè)項(xiàng)目目錄 cd my_project # 創(chuàng)建虛擬環(huán)境 my_project_env 為虛擬環(huán)境的名稱(chēng) virtualenv my_project_env # 指定虛擬環(huán)境所用到的python解釋器版本 -p后面為python解釋器存放的路徑, my_project_env 為虛擬環(huán)境的名稱(chēng) virtualenv -p /usr/bin/python2.7 my_project_env # 創(chuàng)建完成虛擬環(huán)境之后會(huì)生成一個(gè)文件夾,之后在bin文件夾中會(huì)有一個(gè)activate,我們?cè)谑褂锰摂M環(huán)境需要激活虛擬環(huán)境,source activate。 source my_project_env/bin/activate #退出虛擬環(huán)境 deactivate
5.在虛擬環(huán)境中安裝django 和 uwsgi 。要指定安裝版本和開(kāi)發(fā)環(huán)境要一樣
pip install django==3.0.4 pip install uwsgi
6.創(chuàng)建django中的項(xiàng)目
# . 表示在當(dāng)前目錄下創(chuàng)建,如果不加,會(huì)在project_name 下創(chuàng)建一個(gè)同名的目錄。 django-admin startproject 'project_name' .
7. 將項(xiàng)目通過(guò)FileZilla 或者其他交互軟件,傳入到剛剛所創(chuàng)建的目錄中。
8.項(xiàng)目上傳完畢之后,需要安裝我們所需要的包。
# 剛剛 pip freeze > requirement.txt 所得 pip install -r requirement.txt
9.完成之后,可以通過(guò) python manage.pu runserver 進(jìn)行測(cè)試,是否成功。顯示出下面得內(nèi)容,即為成功。
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. 因?yàn)樵谏a(chǎn)環(huán)境中我們不可能一直手動(dòng)得去開(kāi)啟服務(wù)器,這個(gè)時(shí)候就需要uwsgi,剛剛已經(jīng)安裝過(guò)uwsgi。我們?cè)诜?wù)器項(xiàng)目目錄下創(chuàng)建一個(gè)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 /‘路徑,從跟開(kāi)始'/test.py
如果出現(xiàn)下面得代碼,則表示成功:
*** 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.之后測(cè)試nginx是否可以正常使用,我們需要進(jìn)到nginx文件下得sbin/ 目錄,運(yùn)行 ./nginx ,之后在瀏覽器訪問(wèn)我們地址即可。如果出現(xiàn) Welcome to Nginx! 即表示成功
14.現(xiàn)在是nginx和uwsgi配置,這個(gè)也是最頭疼的。
# uwsgi 官網(wǎng) https://uwsgi-docs.readthedocs.io/en/latest/ # nginx主要問(wèn)題在 nginx.conf,下面附上詳解 http://chabaoo.cn/article/131362.htm
總結(jié)
到此這篇關(guān)于Nginx+Uwsgi+Django 項(xiàng)目部署到服務(wù)器的文章就介紹到這了,更多相關(guān)nginx uwsgi django 項(xiàng)目部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)的爬蟲(chóng)功能代碼
這篇文章主要介紹了Python實(shí)現(xiàn)的爬蟲(chóng)功能,涉及Python使用urllib2、BeautifulSoup模塊實(shí)現(xiàn)網(wǎng)頁(yè)源碼的獲取、解析等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06python3使用urllib示例取googletranslate(谷歌翻譯)
這篇文章主要介紹了使用urllib取googletranslate(谷歌翻譯)的示例,通過(guò)這個(gè)谷歌翻譯示例學(xué)習(xí)python3中urllib的使用方法,2014-01-01Python 切片索引越界的問(wèn)題(數(shù)組下標(biāo)越界)
Python語(yǔ)言處理字符串、數(shù)組類(lèi)的問(wèn)題時(shí)有一定概率需要使用切片方法,本文主要介紹了Python 切片索引越界的問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Mac PyCharm中的.gitignore 安裝設(shè)置教程
這篇文章主要介紹了Mac PyCharm中的.gitignore 安裝設(shè)置教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04輕松實(shí)現(xiàn)TensorFlow微信跳一跳的AI
這篇文章主要教大家如何輕松實(shí)現(xiàn)TensorFlow微信跳一跳的AI,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01python 系統(tǒng)調(diào)用的實(shí)例詳解
這篇文章主要介紹了python 系統(tǒng)調(diào)用的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07