一、Python3环境的安装
请参考我的其它文章:Installing stable Python3.7.3 in CentOS7.5 --项目部署
二、Nginx环境的安装
请参考我的其它文章:Installing the stable nginx-1.16.0 in CentOS7.5(source installation) --项目部署
三、MySQ环境的安装
请参考我的其它文章:Installing and configuring MySql5.6 In CentOS7.5 --项目部署
安装完成后,将开发环境中的数据库文件导出:
thanlon@thanlon-Ubuntu:~$ mysqldump -uroot -p blueflag>db.sql
上传到服务器中,
thanlon@thanlon-Ubuntu:~$ scp db5.15.sql [email protected]:/root/db_file/
创建和use数据库后,通过source指令导入到MySQL中,
source db.sql
四、上传项目源码到服务器中
- 在CentOS中的/root目录下创建flask文件夹用来存放项目文件
[root@instance-mtfsf05r ~]# mkdir flask
- 上传项目源码到服务其中(我的开发环境是Ubuntu,所以我就通过scp命令上传了)
thanlon@thanlon-Ubuntu:~/pythonWeb$ scp -r blueflag [email protected]:/root/flask
五、安装Python虚拟化环境
- 通过pip3命令安装virtualenv
[root@instance-mtfsf05r ~]# pip3 install virtualenv
- 在项目根目录中创建虚拟环境文件目录(文件名自定义,这里是blueflagvenv)
[root@instance-mtfsf05r ~]# cd flask/blueflag
[root@instance-mtfsf05r blueflag]# virtualenv blueflagvenv
- 激活虚拟化环境
[root@instance-mtfsf05r blueflag]# source blueflagvenv/bin/activate
激活后出现虚拟化环境文件目录名子:(blueflagvenv) [root@instance-mtfsf05r blueflag]#
,说明激活成功,当前正处于Python虚拟环境
六、安装项目需要的第三方库
根据项目的需求安装(在虚拟环境中安装),例如:我的这些库
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install wtforms
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask_sqlalchemy
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install requests
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install pymysql
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask_script
还可以使用:
thanlon@thanlon-Ubuntu:~$ pip3 freeze>blueflag.txt
导出依赖包,然后直接通过:
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install -r blueflag.txt
安装这些依赖包。
七、安装和配置uWSGI
- 安装
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install uwsgi
- 在项目根目录下创建一个配置文件uwsgiconf.ini,文件名可以自定义
(blueflagvenv) [root@instance-mtfsf05r blueflag]# touch uwsgiconf.ini
- 配置uwsgiconf.ini文件
在uwsgiconf.ini文件中写入下面代码块的内容:(记得把注释全部删掉)
[uwsgi]
socket = 127.0.0.1:8001#启动程序时所使用的地址和端口
chdir = /root/flask/blueflag/#项目目录
wsgi-file = manager.py#项目程序启动文件
callable = app#程序内启用的application变量名字
processes = 2#处理器的数量,我的是2个处理器
threads = 2 #线程数量
stats = 127.0.0.1:9191#获取uwsgi统计信息的服务地址
~
这样安装和配置uWSGI就完成了
八、配置Nginx
配置Nginx作为代理的目的是保证项目的安全和负载均衡。当存在网络请求时,Nginx先进行处理,然后再将请求交给uWSGI处理。
- 打开Nginx配置文件nginx.conf
[root@instance-mtfsf05r ~]# vi /usr/local/nginx/conf/nginx.conf
- 修改nginx.conf中的内容如下:(http{}中花括号中的server{})
server {
listen 80;
server_name 106.12.123.123;
#charset koi8-r;
#access_log logs/host.access.log main;
access_log /root/flask/blueflag/logs/access.log;#服务器接收的请求日志
error_log /root/flask/blueflag/logs/error.log;#错误日志
locatior / {
include uwsgi_params; #这里是导入的uwsgi配置
uwsgi_pass 127.0.0.1:8001;#需要和uwsgi的配置文件里socket项的地址
uwsgi_param UWSGI_PYHOME /root/flask/blueflag/blueflagvenv;#python的位置(虚拟环境下)
uwsgi_param UWSGI_CHDIR /root/flask/blueflag;#项目根目录
uwsgi_param UWSGI_SCRIPT manager:app;
}
九、启动Nginx与uWSGI
- 启动Nginx
[root@instance-mtfsf05r ~]# nginx
- 到项目根目录blueflag(这是我的目录)下启动uWSGI,注意要激活Python虚拟环境中,这里在虚拟环境中安装了uwsgi
[root@instance-mtfsf05r blueflag]# cd /root/flask/blueflag/
[root@instance-mtfsf05r blueflag]# source blueflagvenv/bin/activate
(blueflagvenv) [root@instance-mtfsf05r blueflag]# uwsgi uwsgiconf.ini
通过服务器IP地址访问你的项目,正常访问,则部署上线成功