目的:
把一个已经本地调试通过的flask快速部署到云服务器上,能让其他人访问上
环境:
centos8+python3.6.8+flask1.1.2+uwsgi2.0.18
操作:
1、上传目录,这里目录为:/wwwroot,在这之下,把文件上传后,目录下见图:
2、新建虚拟环境
pipenv install --python3.6.8
这里如果是django,可以参考:
python -m venv questionnaire02_env
3、激活虚拟环境
pipenv shell
激活后命令行最前端会出现括号相关内容:
4、服务器上pip list,同本地pip list对比,少了直接本地pip3 freeze > requirements.txt(可以使用pipreqs ./ --encoding=utf8 --force精简下实际用到的依赖)然后上传到服务上
pip3 freeze > requirements.txt
5、服务器上pip install -r requirements.txt然后pip list看是否对齐本地依赖包
6、试运行flask,看是否能正常在浏览器端打开(这种命令,断开命令后则会关闭)
(flask-carmen) [root@VM-0-7-centos flask-env]# flask run --host 0.0.0.0 --port 5000
输入云服务IP+端口访问:
这里如果是django,则可以参考:
python manage.py runserver 0.0.0.0:8000
7、安装编译工具:sudo yum install python3-devel
sudo yum install python3-devel
django的可以参考以下文章安装python3:
http://jfuhao.com/archives/5290
8、安装uwsgi:pip install https://projects.unbit.it/downloads/uwsgi-2.0.18.tar.gz
9、使用uwsgi启动:uwsgi --http 0.0.0.0:5000 --module app:app
如果是django,则使用:这里注意路径,参考下面的路径执行命令,否则会找不到application
(questionnaire02_env) [root@VM-0-7-centos questionnaire02_project]# ls
db.sqlite3 manage.py questionnaire02_app questionnaire02_project
(questionnaire02_env) [root@VM-0-7-centos questionnaire02_project]# uwsgi --http 0.0.0.0:8000 --module questionnaire02_project.wsgi:application
10、app.py所在目录新建wsgi.ini
[uwsgi]
http=0.0.0.0:5000
chdir=/wwwroot/flask-carmen/flask-env
module=app:app
processes=4
threads=1000
pidfile=/tmp/uwsgi.pid
11、uwsgi -d --ini wsgi.ini
12、公网输入网址查看:
13、这里可以切到80端口或在通过域名访问(80端口主要是浏览器默认的访问端口,所以只输入IP即可访问;域名访问需要在阿里巴巴上面开通域名服务,然后配置)
开通过程中需要身份证认真等操作,最后成功后:
14、最后,浏览器输入域名即可访问