1.复制flask项目文件到腾讯云服务器上
例如路径: /root/CHENTAO/code/Flask/GodAlbumy
2.使用pipenv虚拟环境
创建好pipenv虚拟环境后,使用pipenv install -r requirements.txt
将相关库安装好
如果在此过程中,报Python 3 was configured to use ASCII as encoding for the environment 乱码错误,使用命令即可解决。
export LC_ALL=en_US.utf-8 && export LANG=en_US.utf-8
3.nginx.conf配置文件
修改 /usr/local/nginx/conf 路径下的nginx.conf文件,记得修改前先备份一次,修改如下:
server {
listen 80;
server_name www.qxinhai.cn;
#index index.jsp index.html;
# root /yjdata/www/www/;
location / {
proxy_pass http://127.0.0.1:5000;
}
}
listen是绑定的端口,可以通过该端口直接访问到的,默认是80;server_name就是绑定的网址,如果只是测试,也可以写成localhost,但这样的话,上面的listen就不能使用80端口,因为直接使用localhost:80访问的话,访问的是nginx的主页,无法映射到location中;location中的proxy_pass就是启动flask项目绑定的host和port了。
4.启动flask项目
项目需要使用flask run
启动,如果显示没有flask指令的话,按照以下步骤解决:
4.1 使用find / -name flask
查找系统中有哪些flask文件
[root@VM_50_252_centos conf]# find / -name flask
/root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/lib/python3.6/site-packages/flask
/root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/lib/python3.6/site-packages/flask_migrate/templates/flask
/root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/bin/flask
/usr/local/lib/python3.6/site-packages/flask
/usr/local/lib/python3.6/site-packages/flask_migrate/templates/flask
/usr/local/bin/flask
因为我使用的是pipenv虚拟环境,所以需要使用这个路径下的flask文件
/root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/bin/flask
4.2 启动虚拟环境
在对应的目录下,使用pipenv shell
启动
[root@VM_50_252_centos GodAlbumy]# pwd
/root/CHENTAO/env/GodAlbumy
4.3 启动flask项目
进入项目所在目录,前面的(GodAlbumy)指的就是启动了GodAlbumy这个pipenv虚拟环境
(GodAlbumy) [root@VM_50_252_centos GodAlbumy]# pwd
/root/CHENTAO/code/Flask/GodAlbumy
使用命令启动
/root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/bin/flask run
当然,因为使用了虚拟环境,所以需要使用flask的完整路径,如果是真实环境的话,可以创建软链接指向flask,例如
ln -s /root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/bin/flask(真实环境中的flask路径) /usr/bin/flask
4.4 访问
使用www.qxinhai.cn即可访问flask项目了。
5.使用uwsgi
5.1 安装
pip install uwsgi
,如果使用的是虚拟环境,那么pipenv install uwsgi
。如果安装在虚拟环境中,那么使用uwsgi时,需要先启动虚拟环境
5.2 配置文件
[uwsgi]
# url + port,即启动flask项目默认使用的
http=127.0.0.1:5000
# 启动文件
wsgi-file=/root/CHENTAO/code/Flask/GodAlbumy2/GodAlbumy/manage.py
callable=app
# 项目目录
touch-reload=/root/CHENTAO/code/Flask/GodAlbumy2/GodAlbumy
manage.py的代码:
from albumy import create_app
app = create_app('production')
if __name__ == '__main__':
app.run(debug=False)
5.3 启动uwsgi
albumy_uwsgi.init是配置文件的完整路径,因为是在同目录下启动的,所以就没有加上具体路径了。
uwsgi --ini albumy_uwsgi.ini
6. 参考
https://www.cnblogs.com/zhangjpn/p/6876412.html?utm_source=itdadao&utm_medium=referral
https://www.cnblogs.com/franknihao/p/7202253.html
https://www.cnblogs.com/knarfeh/p/5616515.html
网友评论