PT-Gen 后端搭建

服务器必备的软件环境:

  • nginx
  • python3
  • pip3
  • uWSGI

我使用的是 lnmp 安装环境,nginx 安装过程不再赘述。


编译安装 python 3

下载python源码

用wget从官网下载源码,选择任意版本python3,我选的当时最新的发行版python3.6.4,其中安装包版本Gzipped source tarball即我们所需的源码。

1
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

解压,配置

下载完成后解压,然后添加配置。在configure的选项中,–prefix定义了安装位置,便于以后更新或删除python;–enable-shared指定安装共享库,共享库在使用其他需调用python的软件时会用到,比如使用mod_wgsi连接Apache与python时需要,最好填上。

1
2
3
4
$ tar -xzvf Python-3.6.4.tgz
$ cd Python-3.6.4
$ ./configure --prefix=/usr/local/python3 --enable-shared
$ sudo mkdir /usr/local/python3

编译,安装

1
2
$ make
$ sudo make install

如果是多核cpu,make替换为 make -j 可以加快编译速度。

建立软链

然后建立python3和pip3的软链。

1
2
$ ln -s /usr/local/python3/bin/python3 /usr/bin/python3
$ ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

建立软链后输入python3即可进入python3解释器,同时你还可以输入python或python2进入python2解释器,二者可以共存。


下载 PT-Gen

lnmp 新建主机,设置网站根目录和配置文件

1
lnmp vhost add

进入网站根目录并下载程序源码

1
2
3
cd /home/wwwroot/api.example.com
git clone https://github.com/Rhilip/PT-help.git
mv PT-help/* ./

安装依赖库

1
pip3 install -r requirement.txt

创建数据库缺省配置文件,PT-Gen 不需要用到数据库,但源码内包含其他工具,主程序需要有默认数据库配置文件存在才能正常启动

1
2
mkdir instance/
cp config/default.py instance/config.py

安装,配置 uWSGI

1
pip3  install uwsgi

新建配置文件

1
vim config.ini

填入此配置文件内容并保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[uwsgi]
# 采用sock方式通信,程序在启动时会自己创建这个文件
socket = /tmp/uwsgi.sock
# 指向网站目录
chdir = /home/wwwroot/api.example.com
# python 启动程序文件
wsgi-file = run.py
# python 程序内用以启动的 application 变量名
callable = app
# 进程数,可按服务器配置和负载情况调高
processes = 1
# 线程数
threads = 8
# 状态检测地址
stats = 127.0.0.1:9191
# 开启master,程序会进入后台运行模式
master = true
# 最大请求数,在指定数量的管理请求后重载worker
max-requests = 6000
# 指定启动用户
uid = 1001
# 指定用户组
gid = 1001
# 日志路径
daemonize = /var/log/uwsgi.log

不要使用root启动uwsgi,保持和nginx的启动用户一样。lnmp 中 nginx 进程是属于www ,所以 uwsgi 的 uid/gid 也要指定为 www 用户。


配置 nginx

修改 nginx 网站配置文件

1
vim /usr/local/nginx/conf/vhost/api.example.com.conf

location / 段添加uwsgi相关配置

1
2
3
4
5
6
7
location / 
{
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
uwsgi_param UWSGI_CHDIR /home/wwwroot/api.example.com;
uwsgi_param UWSGI_SCRIPT run:app;
}

加载配置文件

1
lnmp nginx reload

运行后端

1
uwsgi3 --ini config.ini

这时访问域名,会出现提示 Hello world~ ,表示程序已成功运行。

PT-Gen 的 api 的路径为 api.example.com/movieinfo/gen ,前端页面修改api的域名即可换用此api。浏览器不带参数访问此路径,默认跳转到工具介绍页面。


参考资料: