【linux】部署django項目

1.安裝python解釋器跳轉

2.安裝mysql跳轉

3.創建數據庫並導入數據

# 導出:
mysqldump -u root -p   test >  test .sql
# 導入:
mysql -uroot -p  test <  test .sql 

4.創建虛擬環境:跳轉

5.上傳django項目代碼到linux服務器

6.解決項目運行時需要的模塊依賴

導出windows系統下解釋器的所有模塊信息,通過命令一鍵安裝所有的模塊

在windows系統下導出解釋器的模塊信息

pip3 freeze >  requirements.txt

在linux系統下通過命令安裝

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple   -r requirements.txt  

7.安裝uwsgi

pip3 install -i https://pypi.douban.com/simple uwsgi 

8.創建uwsgi的配置文件

cd /opt/rikkac
touch uwsgi.ini  

[uwsgi]
# Django-related settings
# the base directory (full path)
# 填寫項目的完整絕對路徑,第一層
chdir           = /opt/rikkac 
# Django's wsgi file
#指定django的wsgi文件路徑,填寫相對路徑
module          = rikkac.wsgi  
# the virtualenv (full path)
#填寫虛擬環境的絕對路徑 可以通過cdvirtualenv切換到虛擬環境路徑
home            = /opt/venv/rikkac
# process-related settings
# master
master          = true
# maximum number of worker processes
#定義程序的多進程數量的,以cpu核數的2倍+1數量填寫   2n+1 數量 
processes       = 9
# the socket (use the full path to be safe
#把uwsgi啓動在socket協議上,的8000端口
socket          = 0.0.0.0:8000
#指定http協議的話,用戶是可以直接訪問到的,不安全的,建議使用socket協議
#http =0.0.0.0:8000

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

9.啓動uwsgi

uwsgi --ini wgsgi.ini

10.安裝nginx鏈接

11.配置nginx

    server {
        listen       80;   
        server_name  _;
        location / {
        uwsgi_pass  127.0.0.1:8000;
        include uwsgi_params;
        }
    }

12.處理django項目靜態文件

# 修改django的settings.py配置文件,添加如下配置
STATIC_URL = '/static/'
STATIC_ROOT='/opt/rikkacstatic'

13.使用命令收集項目的所有靜態文件

python3  manage.py collectstatic

14.配置nginx處理靜態文件請求

location  /static {
	# 別名,將請求中到/static替換
	alias  /opt/rikkacstatic/;
}

15.重啓uwsgi

16.重啓nginx

17.使用supervisor管理uwsgi的後臺

安裝

 yum install supervisor

生成配置文件

echo_supervisord_conf >  /etc/supervisor.conf

添加配置文件,加載django項目

[program:rikkac]  ;任務名稱
command=/opt/python367/bin/uwsgi --ini  /opt/rikkac/uwsgi.ini     ; 程序啓動命令 ,uwsgi命令的絕對路徑和配置文件的絕對路徑
autostart=true       ; 在supervisord啓動的時候也自動啓動
stopasgroup=true     ;默認爲false,進程被殺死時,是否向這個進程組發送stop信號,包括>子進程
killasgroup=true     ;默認爲false,向進程組發送kill信號,包括子進程

啓動supervisord服務端

# 啓動前確保uwsgi已關閉
supervisord -c  /etc/supervisord.conf

進入supervisor的管理交互式終端,管理任務

supervisorctl -c /etc/supervisord.conf 
# supervisor的管理命令
status #查看狀態
start all #啓動所有任務
restart all #重啓所有任務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章