django項目的部署


django項目部署到雲服務器:   

0.通過xshell連接遠程主機服務器ip

1.使用xftp將項目發送到服務器端(也可以使用git)

a.路徑推薦為/var/project/(項目名)

2.給服務器安裝必要的環境

a.升級,更新apt-get
  apt-get update
  apt-get upgrade
b.安裝mysql數據庫
  apt-get install mysql-server-5.7
  (為root設置密碼)
c.安裝pip3(默認未安裝)
  apt install python3-pip
d.安裝虛擬環境
  pip install --upgrade pip (如版本低,先升級pip)
  pip install virtualenv (如報這個錯 Consider using the '--user' option or check the permissions在virtualenv前加上--user即可)
e.安裝虛擬環境管理軟件
  easy_install virtualenvwrapper
  注:安裝上它才可以使用workon, mkvirtualenv等命令
f.配置虛擬環境
  創建虛擬環境管理目錄 mkdir $HOME/.local/virtualenvs
  配置環境變量:
  在~/.bashrc中添加行

export VIRTUALENV_USE_DISTRIBUTE=1 #總是使用 pip/distribute 
export WORKON_HOME=$HOME/.local/virtualenvs #所有虛擬環境存儲的目錄 
if [ -e $HOME/.local/bin/virtualenvwrapper.sh ];then 
source $HOME/.local/bin/virtualenvwrapper.sh 
else if [ -e /usr/local/bin/virtualenvwrapper.sh ];then 
source /usr/local/bin/virtualenvwrapper.sh 
fi 
fi 
export PIP_VIRTUALENV_BASE=$WORKON_HOME 
export PIP_RESPECT_VIRTUALENV=true

刷新環境變量: source ~/.bashrc

創建python3.5的虛擬環境:mkvirtualenv -p /usr/bin/python3.5 虛擬環境的名稱

ps: 使用虛擬環境: workon 虛擬環境名
退出虛擬環境 : deactivate
刪除虛擬環境:rmvirtualenv 虛擬環境名稱

3. 下載安裝python中的第三方庫

根據每個人的項目庫的需求來安裝,常用庫有:
a. requests
b. Pillow
c. pymysql
d. uwsgi

4. 安裝nginx

a. 下載認證密鑰
  wget http://nginx.org/keys/nginx_signing.key (下載到當前目錄下)
b. 配置該密鑰
  sudo apt-key add nginx_signing.key
c. 切換到apt的源列表
  vim /etc/apt/sources.list
加上源:
  deb http://nginx.org/packages/ubuntu/ codename nginx
  deb-src http://nginx.org/packages/ubuntu/ codename nginx
注:
將codename替換成當前linux的版本號, Ubuntu16.04 對應為: xenial, 保存退出
其它的linux版本可以在網上查
d. 更新並安裝
  apt-get update
  apt-get install nginx
e.查看nginx服務是否開啟
  ps -ef | grep nginx 通過存在的進程來篩選查看nginx的狀態

5. 配置django和uwsgi

a. 在項目目錄下建uwsgi.ini文件, 並配置

[uwsgi]
# 使用nginx連接時 使用
#socket=127.0.0.1:8010
# 直接作為web服務器使用
http=127.0.0.1:8010
# 配置工程目錄
chdir=/home/rock/Python1801/DjangoAXF/AXF
# 配置項目的wsgi目錄。相對於工程目錄
wsgi-file=AXF/wsgi.py

#配置進程,線程信息
processes=4
threads=2
enable-threads=True
master=True
pidfile=uwsgi.pid 
daemonize=uwsgi.log

b. 在django項目setting中將DEBUG置為False
c. database配置為服務器上的mysql
d. 建庫,遷移表,插入數據(如果使用了數據庫緩存,python manage.py createcachetable)
e. 一切就緒后執行 uwsgi --ini uwsgi.ini

6.啟動nginx

以配置文件的方式啟動
1.測試:nginx -t -c 配置文件路徑(見到successful便成功)
2.啟動:啟動前確保之前的已經徹底關閉(nginx -s stop)
nginx -c 配置文件路徑

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;
  
   include /etc/nginx/conf.d/*.conf;

   server {
     listen       80;
     server_name  localhost;

     charset utf-8;
     root   /var/www/learn;
     index  hello.html;

  
     location / {
     include /etc/nginx/uwsgi_params;
     uwsgi_pass localhost:8000;
     }
     location /static{
     alias  /var/project1804/game/2048game/;
     }
  }
}
       

 

7.輸入公網ip,訪問項目測試!




















免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM