發佈一個Django項目

一.部署環境準備,準備python3和虛擬環境解釋器,virtualenvwrapper

1.修改python3的環境變量html

            PATH=/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/ruby/bin/:/root/bin
#前面加上/opt/python36/bin

 

2.下載虛擬環境解釋器前端

在根目錄下
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
#若是第一步的環境變量沒配置,pip3不能用

 

3.編輯 ~./bashrcvue

vim ~./bashrc
寫入如下兩行代碼
​
export WORKON_HOME=~/Envs   #設置virtualenv的統一管理目錄
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   #添加virtualenvwrapper的參數,生成乾淨隔絕的環境
export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3     #指定python解釋器
source /opt/python34/bin/virtualenvwrapper.sh #執行virtualenvwrapper安裝腳本
讀取文件,使文件生效
source ~/.bashrc

 

4.新建一個虛擬環境node

在根目錄下
mkvirtualenv s15vuedrf

 

5.準備先後端代碼python

(1)代碼不在本地的狀況linux

在/opt/下建立一個s15vuedrf文件夾,用來放置先後端代碼
​
cd /opt/
mkdir s15vuedrf

 

下載先後端代碼
​
django代碼
wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip
vue代碼
wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip

 

獲得ios

 

解壓代碼
​
unzip 07-luffy_project_01.zip
unzip luffy_boy.zip
​
注:unzip若是不能用
yum install unzip
yum install zip

 

 

(2)代碼在本地的狀況nginx

使用xftp工具
填寫主機ip地址後,寫入Linux的用戶名密碼便可實現Linux與windows的文件互傳
將文件傳到指定位置便可

 

 

二.前端代碼上線

1.準備node打包環境web

在s15vuedrf文件夾在下載node
​
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz

 

獲得redis

 

解壓該node包
​
tar -zxvf node-v8.6.0-linux-x64.tar.gz

 

獲得

 

進入該文件夾中的bin目錄
​
cd node-v8.6.0-linux-x64
cd bin
​
查看該路徑
pwd
#獲得 /opt/s15vuedrf/node-v8.6.0-linux-x64/bin
​
將該路徑添加到環境變量中
vim /etc/profile
在最後加入/opt/s15vuedrf/node-v8.6.0-linux-x64/bin
​
讀取文件,使文件生效
source /etc/profile

 

檢測node和npm是否能正常使用
​
node -v
npm -v

 

2.安裝vue的環境依賴(所需的包)

進入到前端代碼包中
cd 07-luffy_project_01

 

注:查看該目錄下的全部文件,若是有package-lock.json和node_modules文件,刪掉再進行下一步
rm -rf package-lock.json
rm -rf node_modules

 

安裝依賴包
npm install
編譯打包
npm run build
​
以上兩條都正確以後,就會生成一個dist靜態文件,整個前端項目的內容以及index.html都在這裏了

 

3.注意: src/restful/api.js文件中,前端所寫的axios請求可能都是向本地服務器請求,須要改爲服務器的地址,因爲更改的地方較多,因此用sed語法

將全部的地址更改
sed  -i "s/127.0.0.1/192.168.177.130/g" src/restful/api.js
​
檢查是否更改爲功
vim src/restful/api.js

 

三.後端代碼上線

1.準備工做

進入到後端代碼包中
cd luffy_boy
​
注:若是新開了一個窗口,虛擬環境沒有激活,要激活虛擬環境
workon s15vuedrf

 

2.解決後端軟件包依賴問題

(1)方式一:一次性安裝全部的依賴包

導出本地軟件包依賴
pip3 freeze > requirements.txt
​
將這個requirements.txt 傳至到服務器,在服務器的新虛擬環境中,安裝這個文件,就能安裝全部的軟件包了
pip3 install -r  requirements.txt

(2)方式二:根據報錯一個個安裝依賴包

根據這一句的報錯逐個安裝依賴包,直到執行這句不報錯,證實全部的依賴包安裝完畢,後端項目可以運行
python3 manage.py runserver
​
pip3 install -i https://pypi.douban.com/simple django
pip3 install -i https://pypi.douban.com/simple requests
pip3 install -i https://pypi.douban.com/simple django-redis
pip3 install -i https://pypi.douban.com/simple pycrypto
......

出現下圖樣式,表示安裝成功

 

3.準備uwsgi,支持高併發的啓動python項目

下載uwsgi
pip3 install -i https://pypi.douban.com/simple  uwsgi
​
確保uwsgi來自虛擬環境
which uwsgi
獲得的路徑應該在s15vuedrf下

注:uwsgi的使用方式

(1)經過uwsgi啓動一個python web文件
    定義一個配置文件並編寫
        touch s15testuwsgi.py
        vim s15testuwsgi.py
        
    在配置文件s15testuwsgi.py中寫入,並保存退出
        def application(env, start_response):
            start_response('200 OK', [('Content-Type','text/html')])
            return [b"Hello World"] # python3
        
    uwsgi命令啓動(使用該文件啓動)
        uwsgi --http :8000 --wsgi-file s15testuwsgi.py
        
    瀏覽器訪問
        192.168.177.1300:8000
(2)經過uwsgi啓動django
    建立一個Django項目
        django-admin startproject djangotry
    進入該Django項目
        cd djangotry/
    經過uwsgi啓動django
        uwsgi --http :8000 --module djangotry.wsgi
    訪問本地192.168.177.130
        獲得Django基礎頁面證實訪問成功

 

注:uwsgi的熱加載(不重啓項目,自動生效新的後端代碼)

uwsgi --http :8000 --module djangotry.wsgi  --py-authoreload=1

 

使用uwsgi的配置文件啓動項目

每次都寫這樣一句話"uwsgi --http :8000 --module djangotry.wsgi  --py-authoreload=1",太麻煩,且啓動的配置參數會更長,使用項目啓動文件更方便
​
建立一個uwsgi.ini配置文件,寫入參數信息
    touch uwsgi.ini
參數信息
    [uwsgi]
​
    # Django-related settings
    # the base directory (full path)
    #指定項目的絕對路徑的第一層路徑!!!!!!
    chdir           = /opt/s15vuedrf/luffy_boy/
    
    # Django's wsgi file
    #指定項目的wsgi.py文件,寫入相對路徑便可,以chdir參數爲相對路徑
    module          =luffy_boy.wsgi
    
    # the virtualenv (full path)
    #寫入虛擬環境解釋器的絕對路徑
    home            = /root/Envs/s15vuedrf
    # process-related settings
    # master
    master          = true
    
    # maximum number of worker processes
    #指定uwsgi啓動的進程個數
    processes       = 5
    
    #socket指的是,uwsgi啓動一個socket鏈接,當使用nginx+uwsgi時,使用socket參數!!!!!(uwsgi不支持靜態文件的解析,必須用nginx處理靜態文件)
    # the socket (use the full path to be safe
    socket          = 0.0.0.0:9000
    
    #http是指uwsgi啓動一個http鏈接,不用nginx,只用uwsgi的時候,使用這個參數!!!!!
    #http            =0.0.0.0:8000
    
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    
    #後臺運行
    daemonize=yes
    
使用uwsgi的配置文件啓動項目
    uwsgi --ini uwsgi.ini

 

4.supervisor進程管理工具的使用

注:將Linux進程運行在後臺的命令有哪些???
    1.在命令後加上"&"符號
        python manage.py runserver &
    2.使用nohup命令
    3.使用進程管理工具

 

使用python2的包管理工具下載easy_install,注意,此時要退出虛擬環境
    easy_install supervisor
若是沒有easy_install命令,使用以下命令安裝
    yum install python-setuptools
經過echo_supervisord_conf命令,生成一個配置文件,文件中就是要管理的進程任務
    echo_supervisord_conf > /etc/supervisor.conf
編輯配置文件,寫入操做django項目的 命令 
    vim /etc/supervisor.conf  
直接到最底行,寫入如下配置
    [program:s15luffy]
    #uwsgi可執行文件的地址,以及uwsgi.ini的地址
    command=/root/Envs/s15vuedrf/bin/uwsgi  --ini /opt/s15vuedrf/luffy_boy/uwsgi.ini
    
啓動supervisord服務端,指定配置文件啓動
    supervisord -c  /etc/supervisor.conf
經過supervisorctl管理任務
    supervisorctl -c /etc/supervisor.conf 
​
    supervisor管理django進程的命令以下
    supervisorctl直接輸入命令會進入交互式的操做界面
    >  stop s15luffy 
    >  start s15luffy 
    >  status s15luffy 
​
​
啓動luffy的後端代碼

 

5.nginx的配置

編譯安裝nginx(略)
nginx的主配置文件nginx.conf的配置
​
#第一個server虛擬主機是爲了找到vue的dist文件, 找到路飛的index.html
server {
        listen       80;
        server_name  192.168.13.79;
        
        #當請求來自於 192.168.13.79/的時候,直接進入如下location,而後找到vue的dist/index.html 
        location / {
            root   /opt/s15vuedrf/07-luffy_project_01/dist;
            index  index.html;
        }
        
    }
    
#因爲vue發送的接口數據地址是 192.168.13.79:8000  咱們還得再準備一個入口server
server {
    listen 8000;
    server_name  192.168.13.79;
    
    #當接收到接口數據時,請求url是 192.168.13.79:8000 就進入以下location
    location /  {
        #這裏是nginx將請求轉發給  uwsgi啓動的 9000端口
        uwsgi_pass  192.168.13.79:9000;
        # include  就是一個「引入的做用」,就是將外部一個文件的參數,導入到當前的nginx.conf中生效
        include /opt/nginx112/conf/uwsgi_params;
    }
}
​
相關文章
相關標籤/搜索