此例為個人博客項目部署
上線部署准備工作
-
安裝mysql
-
安裝redis
安裝: apt-get install redis-server
從進程中查看是否啟動: ps -aux|grep redis 端口 6379
-
安裝uginx
安裝: sudo apt install nginx
systemctl status nginx 查看nginx的狀態
systemctl start/stop/enable/disable nginx 啟動/關閉/設置開機啟動/禁止開機啟動
或者是如下命令:
service nginx status/stop/restart/start
注意:nginx的配置文件中加載自定義的nginx的配置文件
vim /etc/nginx/nginx.conf
在server中加入以下配置:
include /home/app/conf/*.conf;
-
安裝uwsgi
pip install uwsgi 安裝到虛擬環境下
vim /etc/nginx/nginx.conf
在server中加入以下配置:
include /home/app/conf/*.conf;
注意:將window上項目文件移動到與服務器
scp -r D:\/file\/wordspace\/axf root@47.112.15.210(雲服務器ip):/home/code scp -r D:\/file\/wordspace\/axf-vue\/dist root@47.112.15.210:/home/code
本地服務器操作
使用 Git Bash終端 將項目提交到github:
注意: windows下進入目錄反向斜杠/
-
在需要的本地目錄下clone遠程倉庫,將整個項目放進去
-
在本地倉庫目錄下
-
git add . 提交到本地倉庫
-
git commit -m ' 提交項目 '
-
git push -u 遠程倉庫地址(ssh需要配密鑰, http) 后面推送無需加 -u
配置准備:
1.進入阿里雲網頁,在防火牆中打開80端口服務
2.在阿里雲服務器端,安裝mysql,配置數據庫,設置阿里雲服務器遠程訪問權限
阿里雲服務器端操作
1.創建工作目錄,home下創建code 和 env 用來存放代碼和虛擬環境
2.在code目錄下clone遠程倉庫到阿里雲服務器
在env目錄下創建虛擬環境blogenv (首先得安裝虛擬環境包)
3.進入blogenv/bin目錄下安裝所需要的庫文件
-
激活虛擬環境: source activate
-
在虛擬環境下安裝項目所需的三方庫: pip3 install -r requirement.txt的絕對路徑
非虛擬環境下安裝三方庫: pip3的絕對路徑 install -r requirement.txt的絕對路徑
4.啟動項目
方式一: 虛擬環境中python3的絕對路徑 manage.py的絕對路徑 runserver -p 80 -h 0.0.0.0
例: /home/env/blogenv/bin/python3 /home/code/flask/blog/manage.py runserver -p 80 -h 0.0.0.0
方式二: 在code目錄下創建run_blog.sh文件: touch run_blog.sh, 將以上啟動命令存入該文件.使用nohup去運行它,會生成一個nohup.out日志文件
-
修改權限: chmod -R 777 run__blog.sh
-
后台掛載應用 &: nohup ./run_blog &
-
查看nohup.out日志文件
-
cat nohup.out: 查看全部
-
tail -n 5 nohup.out :查看最后五條記錄
-
tail -f nohup.out: 動態查看應用運行日志
-
啟動時端口被占用,需查看端口殺死占用端口進程:
-
查看端口:
法1: ps -aux | grep 80(指定查找字段)
法2: netstat -lntp
-
殺死進程:
kill -9 進程PID
方式三: 使用 uginx 和 uwsgi 掛載項目
-
配置nginx
新建 blognginx.conf 文件
server {
listen 8880; # 監聽8880端口
server_name 47.112.15.210;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; # 訪問8880端口,請求跳轉到8000端口
uwsgi_param UWSGI_CHDIR /home/code/flask/blog; # blog路徑
uwsgi_param UWSGI_SCRIPT manage:app;
}
}
-
配置uwsgi
新建 bloguwsgi.ini 文件
[uwsgi]
master=true
socket=127.0.0.1:8000
chdir=/home/code/flask/blog/
pythonpath=/home/env/blogenv/bin/python3
callback=app
logto=/home/logs/bloguwsgi.log
