flask-cyblog个人博客部署文档
- 写在前面:
使用python3.6 flask框架开发,前端框架bootstrap 使用了nix主题。
项目地址:https://github.com/Ch3nYe/flask-cyblog
0x0 项目介绍
这是刚学习flask框架时的练习项目,其实就是东拼西凑来的。
- 数据库可以使用mysql或者SQLite,下面部署方式为了简便使用后者。
- 上线后初始用户名和密码是:master@xxx.com root
- 项目经过测试centos和ubuntu都能部署
- 需要的库都在requirements.txt中列出
目录结构
flask-cyblog
├─app
│ ├─admin # admin视图
│ ├─auth # auth视图
│ ├─main # main视图
│ ├─static # 静态文件
│ │ ├─css
│ │ ├─fonts
│ │ └─js
│ ├─templates # 静态html模板
│ │ ├─admin
│ │ └─auth
├─migrations
│ ├─versions
├─config.py # 配置文件
├─manage.py # 启动项
如何配置
- config.py
需要修改该自己的SECRET_KEY - template
一些html’模板写死了我的留言,可自行修改 - manage.py
User.insert_admin()
这一句是插入admin账号的配置,可自行修改,修改之后初始账号和密码就变了。
注[IMPORTANT]:登录页被我隐藏在页面最下面的ChenYe字样上了,点击可跳转至登录页!!!
0x1部署启动
- git clone 源码
- 在服务器配置环境,目前测试gunicorn 启动 稳定性和性能有待观察
-
安装virtualenv:
pip3 install virtualenv -
创建虚拟环境并指定PYTHON版本
virtualenv venv --python=python3.6 -
激活虚拟环境
source venv/bin/activate -
可以通过以下命令退出虚拟环境
deactivate -
删除虚拟环境(即为删除虚拟环境文件夹)
rm -r venv -
安装需要的库(有待测试新版本库是否兼容)
pip3 install -r requirements.txt -
在项目目录下生成上线数据库
python manage.py deploy product
也可以顺便生成15条测试数据,源码可以为指定条数
python manage.py deploy test_data -
使用gunicorn启动app
gunicorn -b 0.0.0.0:80 manage:app -
后台运行: nohup gunicorn -b 0.0.0.0:80 manage:app > out.file 2>&1 &
异常处理
80端口极有可能被apache或者其他应用占用,解决方法:
- 改为其他端口
- 停掉所有其他占用80端口的服务
使用 sudo lsof -i:端口号 查看端口
使用 sudo kill PID号 杀掉进程
有可能启动以后也无法访问,极有可能是防火墙的问题,可以先把防火墙关掉:
sudo ufw disable
0x2 停止gunicorn:
查看进程树
pstree -ap|grep gunicorn
2. 重启Gunicorn任务
kill -HUP 14226
3. 退出Gunicorn任务
kill -9 进程id
0x3 升级python3.5->python3.6 (不必要)
终端输入python3 -V ,查看版本
- 挨个执行下面的命令升级
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
最后一条命令输入Y进行安装。
再次输入python3 -V发现没有变化还是python3.5,还需要下面步骤
输入
which python3
发现python3 路径
我的是/usr/bin/python3
cd /usr/bin/
sudo rm python3 删除原先python3.5
sudo ln -s python3.6 python3
创建软链接
更新 pip
sudo apt-get install python3-pip
再次输入 python3 -V
这时候是python3.6
异常处理
-
如果 pip 出现 No module named apt_pkg 错误
sudo apt-get remove --purge python3-apt
sudo apt-get install python3-apt -
如果出现ModuleNotFoundError: No module named ‘pip._internal’
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
0x4 图片展示