本文采用 lnmp.org 的 LNMP 一键安装包来部署环境。
作者使用的系统是 ubuntu 20.04,所有步骤请使用 root 用户操作,其他系统也可以参考,可能不成功的地方已标注。
安装 lnmp
本文采用 无人值守方式安装,在生成无人值守安装命令时,不推荐使用 源码编译安装,不要问我怎么知道的(装了三个小时没装完)。
常规安装代码(lnmp1.9):
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && ./install.sh lnmp
lnmp 配置
创建网站的方法官网已经非常详细,因此不再叙述。附上链接:https://lnmp.org/faq/lnmp-vhost-add-howto.html
安装 ftp 服务器同样也非常详细:https://lnmp.org/faq/ftpserver.html
安装和配置虚拟环境
首先,使用 pip
命令安装 virtualenv 和 virtualenvwrapper(virtualenv 扩展程序) 库:
pip3 install virtualenv
pip3 install virtualenvwrapper
测试是否安装成功,安装成功将会打印信息。
virtualenv --version
virtualenvwrapper
修改 .bashrc 文件(每个需要使用 virtualenv 都要修改),在末尾添加下面几行:
# virtualenv
export WORKON_HOME=/home/wwwroot/virtualenvs(可自行修改)
source /usr/local/bin/virtualenvwrapper.sh
创建虚拟环境:
mkvirtualenv [site]
安装 Python 库
先切换到虚拟环境。
使用 pip freeze > requirements.txt
导出项目安装的 python 库列表,使用 pip install -r requirements.txt
在服务器上安装。
安装和配置 uWsgi
本部分仅 ubuntu 系统测试成功!
apt-get install libpython3.5-dev
pip install uwsgi
在项目根目录下建立 uwsgi.ini 文件,配置如下:
[uwsgi]
socket=127.0.0.1:8000 # uwsgi 监听的 socket,一般为 ip + 端口
chdir=/home/wwwroot/training.cspoi.net/ # 项目运行目录
wsgi-file=PrePapers/wsgi.py
processes=4
threads=2
master=True
stats=uwsgi.status
pidfile=uwsgi.pid
daemonize=uwsgi.log # 记录日志
启动 uwsgi:uwsgi --ini xxx.ini
重启 uwsgi:uwsgi --reload xxx.pid
停止 uwsgi:uwsgi --stop xxx.pid
Nginx 配置
修改 Nginx 配置,虚拟主机配置文件在:/usr/local/nginx/conf/vhost/域名.conf
。
在 server
里添加下面几行:
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; // 与 uwsgi.ini socket 一样
uwsgi_param UWSGI_SCRIPT PrePapers.wsgi; // 与 uwsgi.ini wsgi-file 一样
uwsgi_param UWSGI_CHDIR /home/wwwroot/training.cspoi.net/; // 与 uwsgi.ini chdir 一样
}
location /static/ {
alias /home/wwwroot/training.cspoi.net/static/; // 注意替换成自己的!
}
修改完运行 lnmp nginx restart
重启 nginx。