項目上線部署步驟

第一步:安裝虛擬機

安裝VMware,地址https://filehippo.com/download_vmware-workstation-pro/
然后安裝Ubuntu,Ubuntu自己下載

第二步:創(chuàng)建root用戶

安裝好Ubuntu之后創(chuàng)建一個root用戶,這是超級管理員用戶,擁有最大權限。

sudo passwd root //創(chuàng)建root用戶
//然后終端顯示Enter new unix password,輸入密碼按enter再次輸入密碼便創(chuàng)建了

然后更新系統(tǒng)

sudo apt-get update

第三步:配置ssh

  • 首先安裝ssh服務器
    $ sudo apt-get install openssh-server
  • 修改配置文件
    $ su -
  • 然后
    vim /etc/ssh/sshd_config
  • 修改一下內容
#Authentication:  

LoginGraceTime 120  

#PermitRootLogin without-password  

PermitRootLogin yes  

StrictModes yes  

  • 重啟ssh服務
    service ssh restart
  • 通過ifconfig查看ip地址
  • 下載bitvise ssh client就可以通過ip地址連接到虛擬機

第四步:下載安裝python以及相關依賴

sudo apt-get -y install libxml2 libxml2-dev python-dev
sudo apt-get install python-pip
//升級pip
pip install --upgrade pip

升級pip之后需要修改文件,安裝vim

sudo apt-get install vim-gtk

安裝之后

sudo vim /user/bin/pip
//將原來的
from pip import main
//改成
from pip._internal import main

然后安裝虛擬環(huán)境

//安裝
sudo pip install virtualenv
//創(chuàng)建虛擬環(huán)境目錄
mkdir python27env
//進入目錄
cd python27env
//創(chuàng)建虛擬環(huán)境
virtualenv envName
//進入虛擬環(huán)境
cd envName
//激活虛擬環(huán)境
source bin/activate

這樣我們就可以在虛擬環(huán)境中安裝相關依賴,如果我們某個項目需要用到這個虛擬環(huán)境,我們就可以進入這個虛擬環(huán)境來執(zhí)行python manage.py runserver

//進入虛擬環(huán)境之后安裝相關依賴
pip install django==1.11.13  .......
pip install uwsgi

第五步: 安裝nginx

//安裝依賴
sudo apt-get -y install libpcre3 libpcre3-dev zlib1g-dev software-properties-common
sudo apt-get -y install nginx

注:下面是nginx相關說明,僅供參考。
所有的配置文件都在/etc/nginx下,并且每個虛擬主機已經安排在了/etc/nginx/sites-available下
啟動程序文件在/usr/sbin/nginx
日志放在了/var/log/nginx中,分別是access.log和error.log
并已經在/etc/init.d/下創(chuàng)建了啟動腳本nginx

  • 可以在項目目錄同目錄下或者項目目錄下創(chuàng)建一個conf文件,文件內容參考
server {
    listen       80;
    server_name  localhost;
    charset utf-8;
    client_max_body_size 75M;   

    location /static {
        alias /opt/web/miniboard/miniboard/static;
    }
    
    location / {
        uwsgi_pass  unix:///var/run/miniboard.sock;
        include     /opt/web/miniboard/uwsgi_params;  //確定項目根目錄下有這個文件
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}
  • 確保我們的項目目錄下有uwsgi_params 和uwsgi.ini文件
    uwsgi.ini文件參考
[uwsgi]

socket      = /var/run/miniboard.sock
chdir       = /opt/web/miniboard //項目目錄
module      = miniboard.wsgi:application
home        = /opt/py2env/miniboard //需要運行的虛擬環(huán)境
touch-reload    = /opt/web/miniboard/reload

master      = true
processes   = 4

chmod-socket    = 666

env = LANG=en_US.UTF-8

uwsgi_params文件參考

uwsgi_param QUERY_STRING        $query_string;
uwsgi_param REQUEST_METHOD      $request_method;
uwsgi_param CONTENT_TYPE        $content_type;
uwsgi_param CONTENT_LENGTH      $content_length;

uwsgi_param REQUEST_URI     $request_uri;
uwsgi_param PATH_INFO       $document_uri;
uwsgi_param DOCUMENT_ROOT       $document_root;
uwsgi_param SERVER_PROTOCOL     $server_protocol;
uwsgi_param UWSGI_SCHEME        $scheme;

uwsgi_param REMOTE_ADDR     $remote_addr;
uwsgi_param REMOTE_PORT     $remote_port;
uwsgi_param SERVER_PORT     $server_port;
uwsgi_param SERVER_NAME     $server_name;
  • 這樣我們就可以將項目跟nginx軟連接了
sudo ln -s /opt/web/nginx.conf /etc/nginx/sites-enabled/  
// /opt/web/nginx.conf就是剛才我們自己創(chuàng)建的那個conf文件,不是nginx目錄下的conf
//檢查一下無誤
sudo nginx -t

這樣我們就可以通過 uwsgi --ini uwsgi.ini來運行服務器而不是python manage.py runserver

最后一步: 通過supervisor來進行進程管理

  • 安裝
apt- get install supervisor

安裝成功后,會在/etc/supervisor目錄下,生成supervisord.conf配置文件。
conf基本不用修改
進程配置會讀取/etc/supervisor/conf.d目錄下的*.conf配置文件,我們在此目錄下創(chuàng)建一個projectName.conf進程配置文件:

[program:projectName]
command=/opt/web/sh_project.sh //這個是sh文件的位置,需要你自己創(chuàng)建配置,這里只需保證路徑正確就行
user=root
autorestart=true
redirect_stderr=true
startsecs=0
stopwaitsecs=0
autostart=true
stdout_logfile=/var/log/supervisor/androidSync.log

在剛才配置supervisor時創(chuàng)建的conf指定的路徑下創(chuàng)建一個sh_project.sh文件
里面寫入shell命令

#!/bin/sh
ps aux | grep "uwsgi" | grep -v grep| cut -c 9-15|xargs kill -9 //篩選并殺死該進程
cd /opt/py2env/project  //進入項目的虛擬環(huán)境
. bin/activate //激活虛擬環(huán)境
cd /opt/web/project //在虛擬環(huán)境下進入項目目錄
uwsgi --ini uwsgi.ini  //啟動項目

給文件賦予權限

chmod +x /opt/web/sh_projectname.sh

更新一下

supervisorctl update projectName
//這里的projectName要跟剛才的配置文件里面的[program:projectName]一致
  • 配置好之后,我們便可以通過supervisor來進行進程管理
supervisorctl start project //啟動項目
supervisorctl stop project //暫停目錄
supervisorctl restart project //重啟項目
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容