項目部署Vue+Django(luffy)

部署路飛學城

 部署總體框架圖:

 

 

1 熟悉linux操做

2 上傳路飛學城項目到linux服務器

xftp上傳到服務器html

lrzsz工具前端

 

3 完成python3解釋器的安裝

在linux命令行模式下, 輸入python3,可以正常進入python3的解釋器vue

4 完成virtualenvwrapper工具的配置,解決虛擬環境問題

1 安裝虛擬環境virtualenvnode

2 安裝virtualenvwrapper工具python

3 確認virtualenvwrapper.sh腳本正常使用mysql

4 確認用戶環境變量配置文件,有virtualenvwrapper.sh的四行配置linux

WORKON_HOME=~/Envs
VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3
source /opt/python36/bin/virtualenvwrapper.sh

 

5 建立路飛學城專用虛擬環境nginx

luffy_city_env

6 上傳requirements.txt面試

關於requirements.txt的一些操做redis

生成requirements.txt文件

  pip freeze > requirements.txt


安裝requirements.txt依賴

  pip install -r requirements.txt

 

7 安裝路飛學城項目所須要的全部模塊

 

5 完成centos7下安裝配置mariadb數據庫,且建立數據庫數據,遷移導入路飛學城數據

#centos7底下,mariadb就是mysql數據庫,只是包名的不一樣 ​ #啓動mariadb服務端 ​ #使用客戶端去連接mysql服務端

1 導出數據庫數據

有兩種方法
第一種:
mysqldump -u root -p --all-databases >  luffy_city.sql

 


第二種:
直接從navicat導出數據庫的數據
   (1) 先從navicat導出數據庫數據,導出爲luffycity.sql
   (2) 將luffycity.sql上傳到服務器的/opt目錄下
   (3) 在服務器上進入mysql,而後建立數據庫luffycity
   (4) 進入數據庫luffycity
   (5) 使用命令source luffycity.sql導入luffycity.sql數據
   (6) 使用show tables命令查看數據是否成功導入

2 使用mysql -uroot -p 在linux上登錄mariadb

3 刷新受權表

出路飛學城項目的數據庫, 容許root用戶遠程登陸

# 容許root用戶遠程登陸,而且給予全部數據庫全部表的全部權限
grant all privileges on *.* to root@'%' identified by 'nihao123';
flush privileges;

 

4 上傳這個數據文件到linux數據庫中

linux的mysql,導入這個數據文件

(1) 進入mysql
    mysql -u root -p
(2) 進入數據庫
    use luffycity
(3) 導入數據
    source /opt/luffycity.sql

 

注意1,linux的數據庫,須要對root用戶設置遠程連接的權限, 密碼是nihao123
注意2,SELinux和linux的防火牆要給關閉,不然windows去連接linux的3306端口可能被拒絕
注意3: 第4步必定要確認OK以後才能繼續往下操做

 

6 測試使用linux的python解釋器去運行項目 切換到 項目中運行(注意要解決解釋器的模塊問題,才能正常運轉項目)

(1) 先修改路飛學城項目的settings.py文件

ALLOW_HOSTS=["*"]
數據庫鏈接配置
注意: mariadb就是mysql,這裏的ENGINE不用修改
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        "HOST": "127.0.0.1",
        "PORT": 3306,
        "USER": "root",
        "PASSWORD": "nihao123",
        "NAME": "luffycity",
    }
}
​

 

(2) 使用命令把django跑起來

python3 manage.py runserver 0.0.0.0:8000

 

 

7 完成uWSGI命令學習,使用uWSGI啓動路飛學城,支持多進程

1 安裝uwsgi

(1) 進入luffy_city_env虛擬環境
    workon luffy_city_env
(2) 安裝uwsgi
    pip3 install uwsgi

 

2 uwsgi 啓動測試文件

(1) 建立一個testqishi2.py
(2) 寫入如下幾行代碼
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"] # python3
(3) 經過uwsgi命令將測試文件跑起來
uwsgi --http :9000 --wsgi-file testqishi2.py
(4) 測試經過IP+端口訪問
http://192.168.12.60:9000

 

3 uwsgi啓動django項目
uwsgi --http :9000 --module luffy.wsgi

 

4 uwsgi熱加載啓動
注意: 之後面試可能會問到, uwsgi是否支持熱加載啓動
注意: 之後面試可能會問到, uwsgi是否支持熱加載啓動
uwsgi --http :9000 --module luffy.wsgi --py-autoreload=1

 

5 使用uwsgi配置文件啓動django項目
(1) 建立一個配置文件uwsgi.ini(注意,這個配置文件無論放在哪裏均可以,可是啓動的時候,須要找到這個配置文件)
(2) 寫入如下配置
[uwsgi]
​
chdir           = /opt/luffy_city/luffy
module          = luffy.wsgi
home            = /root/Envs/luffy_city_env
master          = true
processes       = 1
socket          = 0.0.0.0:8000
http            = 0.0.0.0:8000
vacuum          = true


(3) 經過指定uwsgi.ini配置文件把django跑起來
uwsgi uwsgi.ini

 

 
6 uwsgi.ini配置詳解
[uwsgi]
# Django-related settings
# the base directory (full path)
# 寫上項目的絕對路徑
chdir           = /opt/book_manage
# Django's wsgi file
# 填寫找到django的wsgi文件,填寫相對路徑,以chdir參數爲相對路徑
module          = book_manage.wsgi
# the virtualenv (full path)
# 填寫虛擬環境的絕對路徑
home            = /root/Envs/book_manage_env/
# process-related settings
# master
#啓動uwsgi主進程
master          = true
# maximum number of worker processes
processes       = 1
# the socket (use the full path to be safe
#若是你使用了nginx,作反向代理,必須填寫socket連接,而不是http參數
socket          = 0.0.0.0:8000
#若是你不用nginx,直接使用uwsgi,運行一個http服務端,就用這個http參數
http = 0.0.0.0:8000
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

 

注意: socket和http參數二選一,必定要注意!!!!!!!!!!!!!!!!!!

注意: socket和http參數二選一,必定要注意!!!!!!!!!!!!!!!!!!

注意: socket和http參數二選一,必定要注意!!!!!!!!!!!!!!!!!!

因爲uwsgi 不支持處理靜態文件,因此,咱們須要配置nginx與uwsgi結合,經過nginx來處理靜態文件

8 完成nginx的安裝配置,瞭解nginx.conf如何配置

1 收集靜態文件

(1) 修改settings.py配置文件, 加入如下一行配置

STATIC_ROOT='/opt/luffy_city/static'

 

(2) 建立靜態文件存放目錄/opt/luffy_city/static

mkdir -p /opt/luffy_city/static

 

(3) 一條命令收集django項目下面的全部靜態文件

python3 manage.py collectstatic

 

看到這個信息說明已經成功收集

 

2 配置nginx結合uwsgi進行轉發

(1)在nginx.conf配置文件下添加如下配置文件

location / {
            include  /opt/nginx112/conf/uwsgi_params;
            uwsgi_pass 0.0.0.0:9000;
        }

 

(2) 將uwsgi.ini配置文件裏面的http註釋掉,啓用socket

socket          = 0.0.0.0:9000   # 啓用此行
# http            = 0.0.0.0:9000  # 停用此行

 

(3) 在nginx.conf中添加靜態文件地址

location /static {
            alias /opt/luffy_city/static;
        }

 

(4) 平滑重啓nginx

/opt/nginx112/sbin/nginx -s reload
若出現pid錯誤,則是由於沒有啓動nginx 須要啓動
/opt/nginx112/sbin/nginx

 

(5) 在物理機上添加hosts

192.168.12.56    www.qishi2.com

 

9 驗證全部流程是否正常

1 驗證域名是否正常訪問

2 驗證靜態文件是否正常顯示

3 驗證數據庫是否鏈接正常

4 驗證redis數據庫是否鏈接正常

5 驗證uwsgi是否正常啓動

 

10 安裝node , 配置vue前端

(1) 下載安裝node軟件包

wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz

 

(2) 解壓縮

tar -zxvf node-v8.6.0-linux-x64.tar.gz

 

(3) 添加環境變量

進入編輯環境變量設置文件
    vim /etc/profile
添加node的環境變量
  PATH=/opt/node-v8.6.0-linux-x64/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

 

(4) 將vue項目裏面的全部127.0.0.1和全部的localhost所有改成咱們的服務器地址192.168.12.56

注意: 此步很是重要, 講師機上面的vue項目裏面,這個IP沒有建立全局變量,致使127.0.0.1和localhost分佈在不少個文件中,因此須要一個一個替換

(5) 進入到vue前端的項目目錄, 使用npm run build生成dist項目靜態文件

cd /opt/luffy_city/luffy_pc
npm run build
 

(6) 在luffy_pc目錄下就能夠看到dist文件夾,dist中生成一個indx.html,到時讓nginx指向這個index.html便可

/opt/luffy_city/luffy_pc/dist

(7) 以後只要在/opt/nginx112/conf/nginx.conf

配置:

server {
     #用戶訪問域名或者ip,默認是nginx的80端口

        listen       80;
        server_name  192.168.119.12;
     #url匹配  /   也就是請求地址是192.168.119.12時,進入此location,返回vue的dist下index.html路飛學城首頁
        location / {
        root /opt/07-luffy_project_01/dist;   #index.html文件的位置
        index index.html;
        }
    }

 

11 supervisor守護進程工具

1 安裝supervisor

因爲supervisor在python3下沒法使用,所以只能用python2去下載!!!!!!

因爲supervisor在python3下沒法使用,所以只能用python2去下載!!!!!!

因爲supervisor在python3下沒法使用,所以只能用python2去下載!!!!!!

# 注意此時已經退出虛擬環境了!!!!!
easy_install supervisor
​
# 若是沒有easy_install的話,就yum安裝一個setuptools工具就能夠用了
yum install python-setuptools

2 生成supervisord配置文件

echo_supervisord_conf > /etc/supervisord.conf

 

3 在/etc/supervisord.conf下添加如下兩行配置

[program:luffy_city]
command=/root/Envs/luffy_city_env/bin/uwsgi /opt/luffy_city/luffy/uwsgi.ini

 


4 啓動supervisor

supervisord -c /etc/supervisord.conf # 啓動supervisor
supervisorctl -c /etc/supervisord.conf # 啓動和進入supervisor交互模式

 

5 查看supervisor運行狀態

supervisorctl  # 使用此命令後將會進入supervisor交互式管理界面
status  # 查看進程運行狀態

 

6 管理supervisor裏面的進程

stop luffy_city    # 關閉luffy_city進程
stop all           # 關閉全部進程
start luffy_city   # 開啓luffy_city進程
start all          # 開啓全部進程
status             # 查看全部進程運行狀態
​
supervisorctl status  # 能夠不用進入交互模式查看

 

 

12 最終效果

訪問nginx的80端口,便可找到路飛學城應用,且保證靜態文件頁面正常

相關文章
相關標籤/搜索