Centos環境部署django項目的全過程(永久復用)
一:基礎環境介紹:
Centos:7.8(cat /etc/redhat-release查看版本號)
Python:3.9.5(python -V查看版本號)
Django:2.2.6(django-admin –version查看版本號)
Uwsgi:2.0.20(uwsgi –version查看版本號)
Nginx:1.20.1 (nginx -v查看版本號)
二:部署環境安裝配置:
1.基礎依賴環境安裝
yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
2.安裝wegt,vim,unzip等必須命令
yum -y install wget vim unzip
3.安裝python與pip(或者python多版本管理工具pyenv等)
## 1.下載自己需要版本的python版本包 wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz ## 2.新建python3目錄 mkdir /usr/local/python3 ## 3.安裝Python3壓縮包,進入解壓目錄,指定安裝目錄,安裝Python3 tar -xvf Python-3.9.5.tar.xz cd Python-3.9.5 ./configure --prefix=/usr/local/python3 make && make install ## 4.安裝Python3時,會自動安裝pip,如果沒有就手動安裝 yum -y install python-pip ## 5.pip配置(更換pip的源) (1)找到pip.conf並編輯 [root@devops ~]# cd ~ [root@devops ~]# mkdir .pip [root@devops ~]# vim pip.conf [global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com :wq!保存退出即可 (2) 安裝依賴安裝好pip [root@devops ~]# yum -y install epel-release [root@devops ~]# yum install python-pip [root@devops ~]# pip install --upgrade pip ## 6.升級下pip pip install --upgrade pip ## 7.創建軟鏈接 ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 ## 輸入python3測試是否安裝成功 python -V
4.安裝nginx
## 1.yum方式安裝nginx yum -y install nginx ## 2.查看nginx版本 nginx -v ## 3.啟動nginx systemctl status nginx ## 查看nginx狀態 systemctl start nginx ## 開啟nginx服務 systemctl stp nginx ## 關閉nginx服務
5.安裝uwsgi
## 1.安裝uwsgi pip3 install uwsgi ## 2.建立軟鏈接 ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi ## 3.查看uwsgi版本 uwsgi --version
三:部署django項目:
1.上傳項目並安裝項目模塊並啟動測試
## 1.上傳文件到服務器 ## 2.解壓項目 unzaip devops.zip ## 3.pip安裝項目依賴模塊 pip3 install -r requirements.txt ## 4.通過python3 manage.py runserver運行一下項目,如果能正常啟動則進行下一步,不能正常運行往上檢查。 這裡需要註意使用python3來執行manage.py,否則會出現報錯情況!
2.在項目裡配置uwsgi.ini配置文件
(1)在settings.py所在目錄vim新文件 項目名稱.ini
(2)配置 項目名稱.ini文件
[uwsgi] master=true chdir=/data(服務器實際目錄)/項目名稱 module=項目名稱.wsgi py-autoreload=1 lazy-apps=true socket=127.0.0.1:8000 processes=4 buffer-size=32768 daemonize=uwsgi.log log-maxsize = 5000000 vacuum = true disable-logging = true
(3)檢查settings.py配置並收集項目靜態文件
一般都是這個配置:
settings.py配置:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, '/static/') STATICFILES_DIRS = [ os.path.join(BASE_DIR, '../bitmain_cmdb/static'), ## 實際靜態文件所在項目路徑,親測好使 ]
url.py配置:
from django.conf.urls import * from django.contrib import admin from django.conf.urls import url,include from django.conf.urls.static import static from django.conf import settings urlpatterns = [ url(r'^cmdb_admin/', admin.site.urls), ] + static(settings.STATIC_URL,document_root = settings.STATIC_ROOT)
執行收集靜態文件命令:
python manage.py collectstatic
(4)啟動測試,並查看日志
## 在當前目錄啟動 uwsgi -i 項目名稱.ini ## 啟動之後查看進程 ps -ef | grep uwsgi
啟動:uwsgi -i 項目名稱.ini
查看進程
查看日志,服務啟動正常
3.配置nginx
vim /etc/nginx/nginx.conf
nginx.conf配置
user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; charset utf-8; location /static { alias /項目所在目錄/static/; } location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } } }
(4)啟動nginx
## 1.配置完nginx.conf,執行 nginx -t /etc/nginx.conf 啟用nginx配置文件 ## 2.軟加載nginx nginx -s reload
(5)訪問django項目http://服務器ip/login/
四:備註
之後項目重啟隻需要重啟uwsgi之後再重啟nginx即可,切記正式環境要關掉django的debug模式,防止報錯源碼被看到。
## 項目重啟 killall -9 uwsgi uwsgi -i 項目名稱.ini nginx -s reload ## 關閉項目debug模式 vim settings.py debug = Fasle
總結
到此這篇關於Centos環境部署django項目的文章就介紹到這瞭,更多相關Centos環境部署django內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- centos+nginx+uwsgi部署django項目上線
- pycharm部署django項目到雲服務器的詳細流程
- django項目、vue項目部署雲服務器的詳細過程
- 部署django項目安裝uwsgi出錯的解決方法總結
- django配置DJANGO_SETTINGS_MODULE的實現