ubuntu部署drf+vue 云服務器部署

vue打包成dist

一,更新操作系統和安裝依賴包

更新操作系統軟件庫

sudo apt-get update
sudo apt-get upgrade

安裝上傳rz、下載sz工具

sudo apt-get install lrzsz

安裝gcc g++的依賴庫

sudo apt-get install build-essential
sudo apt-get install libtool

安裝 pcre依賴庫

sudo apt-get install libpcre3 libpcre3-dev

安裝 pcre依賴庫

sudo apt-get install zlib1g-dev

安裝 ssl依賴庫

sudo apt-get install openssl

二,安裝python環境
Ubuntu16.04版本最新的Python 3.x為版本3.5

要安裝Python 3.6 ,請運行以下命令:

# wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz

# tar -xvf Python-3.6.2.tar.xz # cd Python-3.6.2

# ./configure

# make  && make install

此時系統會為python3.6安裝對應的pip,可能為pip3或pip3.6

查看方法:pip3/pip3.6 -V
更新pip:

pip3.6 install --upgrade pip

更新軟件列表:

pip3.6 install --update pip

軟連接==============

  1. 修改默認Python版本

Ubuntu16.04版本集成了Python2.7及3.5版本,系統中原來的python在/usr/bin/python,通過ls -l可以看到,python是一個軟鏈接,鏈接到本目錄下的python2.7

我們需要先把這個默認鏈接刪除,再新建一個python3.6的軟鏈接.。首先要確保終端的指針已經退回根目錄,再進行以下操作。

  1. 需要刪除原有的Python鏈接文件: rm /usr/bin/python

注意如果終端提示:rm: 無法刪除’/usr/bin/python’:權限不夠,那么就需要使用sudo或者打開root權限刪除鏈接。

  1. 建立指向Python3.6的鏈接,權限不夠的話使用root或者sudo加命令:

ln -s /usr/bin/python3.6/bin/python3.6/usr/bin/python
查詢Python版本
python@ubuntu:~$ python -V
Python 3.6.5

如果顯示是python3.6.5則說明安裝成功!
pip -V查看pip對應的版本,版本不對的話刪除pip使用軟連接,重新下載
which pip查看pip安裝路徑

三、建立兩個文件夾,用于存放virtualenv環境和項目

放虛擬環境的

sudo mkdir -p /data/env

放項目的

sudo mkdir -p /data/wwwroot
四、安裝virtualenv
sudo pip3 install virtualenv
進入env目錄

cd /data/env
指定Python版本,創建名為pyweb的虛擬環境,

查找虛擬環境位置
find / -name virtualenv

sudo virtualenv -p /usr/bin/python3 pyweb
指定Python版本的時候,如果不知道Python3的路徑,可以使用下面的命令查看
檢查版本
uwsgi --python-version
which python
五、啟動虛擬環境
這里環境名為venv,所以source venv/bin/activate
關閉環境 deactivate

啟動虛擬環境

source /data/env/pyweb/bin/activate
pip3 freeze > requirements.txt 安裝依賴
deactivate 退出虛擬環境

nginx+uwsgi部署
pip 安裝uwsgi
在項目根目錄中

uwsgi命令啟動falsk項目
uwsgi --http :8000 --wsgi-file uwsgi_test.py

  1. 創建一個uwsgi.ini配置文件,寫入參數信息

        在項目的外層目錄中創建配置文件,與manage.py在同一目錄即可,
        
        cd /opt/s15vuedrf/luffy_boy
        touch uwsgi.ini 
        
            [uwsgi]                    
            chdir           = /opt/s15vuedrf/luffy_boy/                    
            module          = luffy_boy.wsgi                    
            home            = /root/Envs/s15vuedrf                    
            master          = true                                    
            processes       = 1                    
            socket          = 0.0.0.0:9000     # 與nginx連用,啟動項目時使用 socket
            # http            = 0.0.0.0:9000   # 只有uwsgi啟動的時候使用 http
            vacuum          = true
    

保存后uwsgi --ini uwsgi.ini 啟動
uwsig示例:
[uwsgi]

http=本地ip:8081 #只使用uwsgi的話使用本地ip

socket=127.0.0.1:9000
chdir=/data/wwwroot/mysite
wsgi-file=mysite/wsgi.py
processes=4
threads=2
master=true
pidfile=uwsgi.pid
daemonize=uwsgi.log

nginx查找項目
2.配置文件/etc/nginx/nginx.conf如下:

#第一個server虛擬主機是為了找到vue的dist文件, 找到路飛的index.html
server {
        listen       80;
        server_name  公網ip;
        
        #當請求來自于 公網ip/的時候默認80端口,直接進入以下location,然后找到vue的dist/index.html 
        location / {
            root  /data/wwwroot/dist;
            index  index.html;
        }
    }
    
#由于vue發送的接口數據地址是 公網ip:8000  我們還得再準備一個入口server如下
server {
    listen 8000;
    server_name  公網ip;
    
    #當接收到接口數據時,請求url是  公網ip:8000 就進入如下location
    location /  {
        #這里是nginx將請求轉發給  uwsgi啟動的 9000端口,uwsgi.ini文件中端口9000,的項目將被啟動
        uwsgi_pass  公網ip:9000;
        # include  就是一個“引入的作用”,就是將外部一個文件的參數,導入到當前的nginx.conf中生效
        include uwsgi_params;
    }
}

3.啟動nginx

nginx    # 直接啟動服務,如果沒有添加系統環境變量就用絕對路徑啟動,/opt/nginx112/sbin/nginx

此時可以訪問 192.168.13.210  查看頁面結果即可,顯示正常則完成項目的部署

啟動路飛項目,這個項目用的是sqllite,因此安裝mysql自行選擇

數據資料來源 依賴包和虛擬環境 http://www.lxweimin.com/p/72575581564c
python安裝https://blog.csdn.net/qq_42734759/article/details/89096156
python安裝軟連接 https://blog.csdn.net/JiekeXu/article/details/80299370
nginx+uwsgi部署django+vue
https://www.cnblogs.com/cyycyhcbw/articles/10218458.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容