Centos下搭建flask项目(环境部署)

参考文章:www.jianshu.com/p/f1acbd401…python

1.安装python

1)下载 python 3.6.1mysql

wget https://www.Python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
复制代码

2) 解压nginx

tar xJf  Python-3.6.1.tar.xz
复制代码

3) 进入 python-3.6.1 目录c++

cd  Python-3.6.1
复制代码

4)安装sql

./configure  --prefix=/usr/local/python3 && make && make install
复制代码

若是安装失败须要先执行:shell

sudo yum install gcc-c++

复制代码

若是报:zipimport.ZipImportError: can't decompress data; zlib not available数据库

执行:yum -y install zlib*flask

5)建立python3软连接bash

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3

sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
复制代码

通常安装python3后pip3会一块儿安装了,(pip3 -V查看是否安装)若是没有安装pip3服务器

参考:blog.csdn.net/qq_25046261…

2.虚拟环境

1)安装虚拟环境

pip3 install virtualenv -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
复制代码

2)建立Python的虚拟环境

在指定目录下执行则安装在该目录下(好比能够在py36venv下,先mkdir py36venv)

/usr/local/python3/bin/virtualenv  -p /usr/bin/python3 venv
复制代码

3)激活虚拟环境(虚拟环境目录下执行,如py36venv下)

source venv/bin/activate
复制代码

4)关闭环境:

deactivate
复制代码

3.requirements.txt的生成和安装

首先在项目的虚拟环境生成requirements.txt,进入虚拟环境:

pip freeze>requirements.txt
复制代码

服务器端进入虚拟环境,执行安装

pip install -r requirements.txt
复制代码

4.安装MySQL

wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'

sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

yum repolist all | grep mysql

sudo yum install mysql-community-server
复制代码

启动mysql服务

sudo service mysqld start

sudo systemctl start mysqld

sudo systemctl status mysqld
复制代码

查看系统默认的root密码

grep "temporary password" /var/log/mysqld.log
复制代码

mysql -u root -p输入密码后进入MySQL修改默认密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'(密码改为了root)
复制代码

修改密码会提示校验不经过先执行:set global validate_password_policy=0;

PS:注意本地安装Navicat链接远程服务器的时候,会被拒绝这时须要在服务器端运行受权:

grant all privileges on *.*  to  'root'@'%' identified by 'root';

flush privileges;
复制代码

5.安装nginx

安装依赖包:

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel```

wget http://nginx.org/download/nginx-1.10.2.tar.gz

tar -zxvf nginx-1.10.2.tar.gz

cd nginx-1.10.2

./configure --prefix=/usr/local/nginxmake && make install

whereis nginx

/usr/local/nginx/sbin/nginx
复制代码

修改NGINX配置文件:

cd /etc/nginx

vi nginx.conf

#location增长uwsgi的配置

   location / {

            include uwsgi_params;

            uwsgi_pass 127.0.0.1:8080;

        }


复制代码

6.安装uwsgi

虚拟环境下安装uwsgi:pip install uwsgi

找一个文件夹下建立一个配置文件config.ini

[uwsgi]

# uwsgi 启动时所使用的地址与端口

socket = 127.0.0.1:8080

# 指向网站目录

chdir=/root/www/flask_idiom

# python 启动程序文件

wsgi-file = manage.py

# python 程序内用以启动的 application 变量名

callable = app

# 处理器数

processes = 4

# 线程数

threads = 2

buffer-size = 32768

#状态检测地址

stats = 127.0.0.1:9090
复制代码

PS:socket地址和nginx处一致端口也要一致

启动直接:uwsgi config.ini

7. 项目部署:

项目地址:/root/www/flask_idiom

虚拟环境地址:/root/py36venv/venv

uwsgi配置地址:/root/www/flask_idiom

1)激活虚拟环境:[root@instance-9bor86dn venv]# source bin/activate

2)虚拟环境下进入到项目地址:初始化数据库

export FALSK_APP=manage.py

flask db init

flask db migrate

flask db upgrade
复制代码

3)运行爬虫脚本初始化数据到数据库

mysql -u root -p

#建立数据库
create database bss_demo charset utf8;
复制代码

4)运行项目:uwsgi config.ini

查看进程:ps -aux|grep uwsgi

kill -9 进程号中止服务

Tip:uwsgi是直接在前台启动的,当咱们的链接终端跟服务器断开的时候uwsgi进程也被关闭了,因此咱们须要uwsgi在后台运行。 后台启动项目用nohup启动:不挂断运行命令,用"&"可让你的命令在后台执行(注意:别漏了&号。)

nohup uwsgi config.ini &
复制代码

8.安装Supervisor(监控进程)

参考:www.jianshu.com/p/ac6c84a2f…

Supervisor(supervisord.org/) 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具。

它能够很方便的监听、启动、中止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它从新拉起,很方便的作到进程自动恢复的功能,再也不须要本身写shell脚原本控制。

pip install supervisor
#修改supervisor的配置文件

复制代码
相关文章
相关标签/搜索