首先得看我前兩個博客,把python3,虛擬環境,mariadb數據庫,redis數據庫,nginx安裝好。
一、創建一個虛擬環境
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目錄下
二、數據庫導入
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;
三、運行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
如果項目代碼沒問題的話,是可以在瀏覽器上正常訪問的
四、使用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
五、使用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前端項目
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文件:
注意:在drf項目的settings.py文件中修改跨域問題
這樣就可以把整個項目運行起來了。記得平滑啟動nginx和啟動uwsgi
5,當我們進入一個頁面后,刷新頁面,就會報404錯誤,解決辦法:
在nginx配置文件下的關於前端vue端口的server下的location下添加:
try_files $uri $uri/ /index.html;
七、superviosr守護進程工具
我們在使用uwsgi啟動django時,每次都要輸入命令,然后才能啟動,而且界面還比保持在uwsgi的啟動界面,當退出這個界面的時候,就相當於退出了uwsgi進程,從而項目就停止了,所以用起來有點煩。我們可以用supervisor工具,只要uwsgi進程在supervisor里面是running狀態,那只要supervisor不關閉uwsgi進程,uwsgi進程就會一直跑起來。
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啟動有問題,不要慌,把所有的的退出,重新連接之后,基本上就可以用了