Ubuntu下部署Django專案

2022-09-13 08:57:13 字數 3490 閱讀 4464

1.首先要進入本地環境把專案所需要的環境匯出來

pip freeze >requirements.txt

2.安裝python3.6.8版本

3.安裝得到的requirements.txt 命令:pip3 install -r requirements.txt  全部安裝

如果遇到httpconnectionpool(host=''xx.xx.xx.xx', port=xx): max retries exceeded with url: (caused by newconnectionerror(': failed to establish a new connection: [winerror 10060]錯誤

處理方法:

4.修改專案的settings檔案

debug = false(線上的專案一定要修改成false)

allowed_hosts = ["*"]

5.在django的settings檔案中,新增下面一行內容:

static_root = os.path.join(base_dir, "static/")

7.配置路由(貌似不是必須)

url(r'^static/(?p.*)',serve,),

6.進入專案目錄執行下面**

收集admin後台的靜態檔案,如果不執行,將來訪問linux的mysite的admin/xadmin將沒有樣式:

python manage.py collectstatic 會提示 是否繼續這樣做? yes

7.進入linux通過cd切換到專案的目錄下 輸入下列命令可以執行證明已經完成了大部分操作

python3 manage.py runserver 0.0.0.0:8000 

本地訪問***:8000/***位址可以訪問成功,說明環境ok

8.完成了上一步發現當終止回話時,就不能在訪問了,下面就是部署終止客戶端會話亦可以訪問

9、安裝必備內容

9.1安裝nginx

sudo apt-get update

apt-get install nginx(目錄在/etc/nginx下)

鏈結到uwsgi的啟動配置檔案中

ln -s /etc/nginx/nginx.conf  /etc/nginx/conf.d/

安裝完成後,使用service nginx start命令啟動後,本地訪問10.205.1.203,顯示welcome to nginx即安裝成功

service nginx restart(start/status/stop/reload)

9.2安裝ssh

apt-get install openssh-server

9.3安裝 uwsgi

sudo apt-get install python3-setuptools

sudo apt-get install python3-dev

pip install uwsgi

10.在你的專案下/data/jenkins/mysite 建立乙個uwsgi.ini的配置檔案

[uwsgi]

#django-related settings

#uwsgi這個服務監聽的是9001埠,如果nginx想要向uwsgi**請求,那麼nginx必須使用9001埠傳送請求。

socket = 127.0.0.1:9001

#專案絕對路徑(手動設定)

chdir           = /data/jenkins/mysite

#django的wsgi檔案相對路徑(不要寫絕對路徑,寫相對路徑,自己設定)

wsgi-file       =mysite/wsgi.py

#process-related settings

#master

master          = true

#最大程序數

processes       = 4

#執行緒數

threads         = 2

#設定此引數,有乙個主程序

master=true

#守護程序的方式執行,log日誌存在此log檔案裡

deamonize=/var/log/uwsgi/mysite.log

disable-logging = true

#主程序id寫入檔案裡

pidfile= /var/log/nginx/uwsgi.pid

#chmod-socket    = 664

#退出時,清理環境

vacuum          = true

reload-mercy    = 10

max-requests    = 5000

limit-as        = 512

buffer-size     = 30000

11. 輸入下面命令,檢視nginx預設配置檔案的目錄

nginx -t 

預設檔案目錄為/etc/nginx/nginx.conf

然後cd到/etc/nginx/下

輸入vim.nginx.conf

可以看出會載入/etc/nginx/conf.d資料夾下的任意.conf結尾的檔案

cd到etc/nginx/conf.d資料夾,然後ls發現裡面沒有檔案,所以需要自己新建檔案dj_nginx.conf(檔名隨便起,.conf結尾就可以)##

12.在dj_nginx.conf ##輸入一下**.一定要記得改路徑

server |xargs kill -9

問題來了:

部署完成後發現執行了uwsgi -i uwsgi.ini命令後沒有後台執行,停止了命令,專案仍然停止了

優化:在專案中建立乙個.sh.結尾的shell檔案 start.sh

由於執行uwsgi -i uwsgi.ini會產生一些log內容,建立乙個mysite.log檔案,將產生的log列印到mysite.log(路徑可以自己定)

shell**:

#!/bin/bash

dir="/data/jenkins/workspace/rrd_mysite/logs/mysite.log"

if [ ! -d "$dir" ];then

touch $dir

echo "建立檔案成功"

else

echo "檔案已經存在"

finohup uwsgi -i uwsgi.ini >$dir 2>&1 &

可以用jenkins配合部署:shell命令:

#!/bin/bash

build_id=dontkillme

echo "kill pid!"

ps -ef|grep uwsgi|awk |xargs kill -9

sleep 2

cd $workspace

rm -rf report20*

rm -rf __pycache__

rm -rf logs/mysite.log

chmod +x start.sh

echo "start service!"

./start.sh

Ubuntu下部署Django專案

1 pip freeze requirements.txtdebug false allowed hosts static root os.path join base dir,static url r static p.serve,收集admin後台的靜態檔案,如果不收集,將來訪問linux的bl...

apache下部署django應用

環境 win server 2003 版本 apache2.2 django1.3 python2.7 mod wsgi.so 首先 安裝apache2.2 python2.7 django1.3 把mod wsgi.so拷貝到 apache目錄下的 modules 下。開啟 httpd.conf檔...

Linux下部署Django專案

目錄 安裝python3.x環境 安裝部署開啟django 由於linux系統預設自帶的是2.x環境,所以我們需要去安裝3.x環境的python。wget2 接著解壓這個壓縮包,命令如下 tar xvf python 3.6.3.tar.xz3 接著編譯安裝,進入解壓後的目錄,執行底下的乙個shel...