首先得看我前兩個博客,把python3,虛擬環境,mariadb數據庫,redis數據庫,nginx安裝好。html
1、建立一個虛擬環境
1,建立虛擬環境
mkvirtualenv zijin #建立了一個叫zijin的虛擬環境
2,安裝模塊
1,上傳項目的requirement.txt文件 2,在當前的虛擬環境中安裝模塊 pip3 install -i https://pypi.douban.com/simple -r requirement.txt
注:安裝xadmin,會出現錯誤,須要咱們手動安裝,
pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
3,上傳項目
我是把項目都上傳到opt目錄下
2、數據庫導入
1,把本地電腦上mysql數據庫的表結構和數據導出
第一種: mysqldump -u root -p --all-databases > luffy_city.sql 第二種 從navicat導出數據庫數據,導出爲luffycity.sql #我採用的是第二種,完成這步,會生成一個sql格式文件
2,把生成的sql文件上傳到/opt目錄下
3,在Linux系統下進入mariadb數據庫,新建一個lufei數據庫,而後進入lufei數據庫
4,導入sql文件
source /opt/lufei.sql
#這樣就會自動生成表結構和數據
5,刷新權限表
# 容許root用戶遠程登陸,而且給予全部數據庫全部表的全部權限 grant all privileges on *.* to root@'%' identified by '123'; flush privileges;
3、運行django項目
1,修改drf項目的settings.py文件
ALLOW_HOSTS=["*"] 數據庫鏈接配置 注意: mariadb就是mysql,這裏的ENGINE不用修改 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', "HOST": "127.0.0.1", "PORT": 3306, "USER": "root", "PASSWORD": "123", "NAME": "lufei", } }
2,運行項目
在opt/lufei_drf目錄下輸入命令 python3 manage.py runserver 0.0.0.0:8000
若是項目代碼沒問題的話,是能夠在瀏覽器上正常訪問的前端
4、使用uwsgi啓動項目
1,安裝uwsgi
1,進入虛擬環境 workon lufei 2,安裝uwsgi pip3 install uwsgi
2,使用uwsgi啓動項目
uwsgi --http :9000 --module lufei_drf.wsgi #lufei_drf爲drf項目文件
在瀏覽器上輸入ip和端口就能夠訪問項目
3,可使用uwsgi配置文件啓動項目
1,在lufei_drf項目建立uwsgi,ini文件 mkdir /opt/lufei_drf/uwsgi.ini 2,寫入配置信息 [uwsgi] chdir = /opt/lufei_drf #這是項目的絕對目錄 module = lufei_drf.wsgi #項目目錄加wsgi home = /root/Envs/lufei #虛擬環境的絕對路徑 master = true #啓動uwsgi主進程 processes = 1 #socket = 0.0.0.0:8000 #這個是當用nginx代理時使用 http = 0.0.0.0:8000 vacuum =true
3,使用uwsgi配置文件啓動項目
uwsgi uwsgi.ini
5、使用nginx
1,收集靜態文件
1,修改settings.py配置文件 STATIC_ROOT='/opt/static' 2,建立今天文件存放目錄 mkdir /opt/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; } location /static { alias /opt/static; } 2,將uwsgi.ini配置文件修改 socket = 0.0.0.0:9000 # 啓用此行 # http = 0.0.0.0:9000 # 停用此行 3,平滑重啓nginx /opt/nginx112/sbin/nginx -s reload
如今,在瀏覽器上輸入192.168.12.64:8000就能夠訪問django項目vue
6、配置vue前端項目
1,安裝及配置node.js
1,在opt目錄下下載noode安裝包 wget https://nodejs.org/download/release/v10.15.3/node-v10.15.3-linux-x64.tar.gz 2,解壓 tar -zxvf node-v10.15.3-linux-x64.tar.gz 3,添加環境變量 vim /etc/profile 把path修改成: PATH=/opt/node-v10.15.3-linux-x64/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin:
/usr/sbin:/usr/bin:/root/bin
2,把vue項目中的全部ip改成192.168.12.64
3,生成dist項目靜態文件
1,進入vue項目 cd /opt/lufei 2,輸入 npm run build
4,在nginx添加服務
server { listen 80; #前端vue用80端口 server_name www.lufei.com ; #使用域名www.lufei.com location / { root /opt/lufei/dist; #靜態文件目錄 index index.html index.htm; } error_page 500 502 503 504 /50x.html; }
修改hosts文件:node
注意:在drf項目的settings.py文件中修改跨域問題python
這樣就能夠把整個項目運行起來了。記得平滑啓動nginx和啓動uwsgimysql
5,當咱們進入一個頁面後,刷新頁面,就會報404錯誤,解決辦法:
在nginx配置文件下的關於前端vue端口的server下的location下添加: try_files $uri $uri/ /index.html;
7、superviosr守護進程工具
咱們在使用uwsgi啓動django時,每次都要輸入命令,而後才能啓動,並且界面還比保持在uwsgi的啓動界面,當退出這個界面的時候,就至關於退出了uwsgi進程,從而項目就中止了,因此用起來有點煩。咱們能夠用supervisor工具,只要uwsgi進程在supervisor裏面是running狀態,那隻要supervisor不關閉uwsgi進程,uwsgi進程就會一直跑起來。linux
1,安裝
因爲supervisor在python3下沒法使用,所以只能用python2去下載!!!!!! 退出虛擬環境,切記 deactivate 安裝 easy_install supervisor # 若是沒有easy_install的話,就yum安裝一個setuptools工具就能夠用了 yum install python-setuptools
2,生成配置文件,並添加配置信息
1,生成配置文件 echo_supervisord_conf > /etc/supervisord.conf 2,進入配置文件 vim /etc/supervisord.conf 3,添加配置信息 [program:lufei_drf] #lufei_drf爲項目目錄 command=/root/Envs/lufei/bin/uwsgi /opt/lufei_drf/uwsgi.ini #lufei爲虛擬環境名,
3,啓動及查看
1,啓動 supervisord -c /etc/supervisord.conf # 啓動supervisor supervisorctl -c /etc/supervisord.conf # 啓動和進入supervisor交互模式 2,查看 supervisorctl # 使用此命令後將會進入supervisor交互式管理界面 status # 查看進程運行狀態
4,管理supervisor裏面的進程
stop luffy_city # 關閉luffy_city進程 stop all # 關閉全部進程 start luffy_city # 開啓luffy_city進程 start all # 開啓全部進程 status # 查看全部進程運行狀態 supervisorctl status # 能夠不用進入交互模式查看
注:當你按照個人步驟進行的,若是出現supervisor啓動有問題,不要慌,把全部的的退出,從新鏈接以後,基本上就能夠用了ios