CentOS下 Django部署 uWSGI+Django(一)

  因爲新冠疫情的緣故,公司要求員工停薪休假,賦閒在家的時候仍是決定作點正事,學學習。python

  本人Linux入門水平,Python入門水平,因此在網上找的那些python部署的帖子,看的是雲裏霧裏的,也沒有達到預期的運行效果。好不容易摸索了一個簡單易懂的部署方式,記錄一下爲了加深理解。web

  CentOS Linux release 7.6.1810 sql

  Python 2.7.5  # 系統自帶的python版本  數據庫

  pip 20.0.2  # 已升過級django

  查看系統版本vim

  # cat /etc/redhat-releasecentos

  CentOS Linux release 7.6.1810 (Core) 服務器

  # rpm -q centos-release學習

  centos-release-7-6.1810.2.el7.centos.x86_64阿里雲

 

  1. 安裝基礎開發包

  yum groupinstall "Development tools"

  yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

  

  2.安裝uwsgi

  pip install uwsgi

  uwsgi --version # 查看 uwsgi 版本

  

  在安裝過程當中可能會遇到上面的錯誤,執行「yum install python-devel.x86_64」能夠應對。

 

   

  安裝時報錯ModuleNotFoundError: No module named '_ctypes'的解決辦法

  yum install libffi-devel 

  而後從config開始從新安裝

 

  3. 安裝Django

  pip install django

  pip list   # 查看已經安裝的模塊

  

  4. 上傳項目

  若是本地有本身的Django項目能夠上傳。我沒有項目,只是在服務器上新建了一個,爲了學習如何部署和運行。

  若是項目有數據庫,則須要進行同步操做。在項目根目錄下執行以下命令。

  # python manage.py makemigration

  # python manage.py migrate

  

  5. 命令行運行django項目

  uwsgi --http=ip:port --file=wsgifile_path  # 不配置靜態文件也可運行,可是項目加載不到靜態文件

  

  6. 收集靜態文件

  # vim setting.py

  找到: STATIC_URL = '/static/'

  在下面添加: STATIC_ROOT = '/howm/damu/work/shopping/static_file/'  

  執行:python manage.py collectstatic

  

  最後: uwsgi --http=192.168.37.128:8000 --file=shopping/wsgi.py --static-map=/static=static_file

  # 命令 &  # 則命令在後臺運行

  若是是阿里雲服務器,此處的ip須要填寫內網的ip地址。 

  

  7. 配置全部須要的選項,經過配置文件啓動uwsgi服務器

  在shopping項目根目錄下建立wsgi.ini

  [uwsgi]   http = 192.168.37.128:8000       #web服務IP端口,uWSGI作web服務器時用   chdir = /home/damu/work/shopping/  # 項目根目錄   wsgi-file = shopping/wsgi.py     #指定wsgi模塊   rocesses = 4               # 啓動的進程數   threads = 2               # 每一個進程的線程   master = true              # 表示主進程模式進行   pidfile = uwsgi.pid           # 主管理進程文件放置的位置   daemonize = uwsgi.log         # 日誌文件   static-map = /static=static_file   # 靜態文件 

  以配置文件方式啓動服務

  # uwsgi --ini uwsgi.ini

  進程文件,用於服務重啓、中止。如:

  重啓指令:uwsgi --restart [pidfile路徑]

  中止指令:uwsgi --stop [pidfile路徑]

  或者:

  pkill -f uwsgi -9  

  killall -s INT /uws/bin/uwsgi

  killall -9 uwsgi  # 刪除uwsgi進程,因爲釋放端口有延遲,要等幾秒。

  

  8. 其餘

  ps -ef | grep uwsgi   # 查看進程

  

   一共六個進程(1個主進程,4個建立進程,1個守護進程)。

相關文章
相關標籤/搜索