LNMP 一键安装包部署 Django 项目

scode type="green"\]本文采用 lnmp.org 的 LNMP 一键安装包来部署环境。\[/scode

作者使用的系统是 ubuntu 20.04,所有步骤请使用 root 用户操作,其他系统也可以参考,可能不成功的地方已标注。

安装 lnmp

本文采用 无人值守方式安装,在生成无人值守安装命令时,不推荐使用 源码编译安装,不要问我怎么知道的(装了三个小时没装完)。

常规安装代码(lnmp1.9):

bash 复制代码
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 扩展程序) 库:

bash 复制代码
pip3 install virtualenv
pip3 install virtualenvwrapper

测试是否安装成功,安装成功将会打印信息。

bash 复制代码
virtualenv --version
virtualenvwrapper

修改 .bashrc 文件(每个需要使用 virtualenv 都要修改),在末尾添加下面几行:

cpp 复制代码
# virtualenv
export WORKON_HOME=/home/wwwroot/virtualenvs(可自行修改)
source /usr/local/bin/virtualenvwrapper.sh

创建虚拟环境:

bash 复制代码
mkvirtualenv [site]

安装 Python 库

先切换到虚拟环境。

使用 pip freeze > requirements.txt 导出项目安装的 python 库列表,使用 pip install -r requirements.txt 在服务器上安装。

安装和配置 uWsgi

scode type="yellow"\]本部分仅 ubuntu 系统测试成功!\[/scode

bash 复制代码
apt-get install libpython3.9-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 里添加下面几行:

conf 复制代码
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。

相关推荐
杨充2 分钟前
4.接口而非实现编程
java·后端·架构
一缕清烟在人间21 分钟前
HarmonyOS应用开发实战:萌宠日记 - 生命周期在萌宠日记中的实践
后端
Conan在掘金21 分钟前
鸿蒙 ArkUI 组件深水区:Span 富文本嵌套,一行 Text 塞下「红蓝斜下大」五样式 + 动态高亮
后端
卷无止境23 分钟前
Python 类型注解与运行时反射:从原理到工程实践
后端·python
耀耀_很无聊1 小时前
13_Spring Boot 3.5.8 + Redisson 3.45.1 导致 Sa-Token 登录 StackOverflowError
spring boot·后端·bootstrap
AskHarries1 小时前
邮件发送方案对比
后端
Ai拆代码的曹操1 小时前
@Async 注解失效的底层真相:this 调用绕过代理,接口响应翻倍
后端
l134062082351 小时前
HarmonyOS应用开发实战:小事记 - 多媒体文件上传:@ohos.net.http 的 multipart/form-data 请求构造
后端·华为·harmonyos·鸿蒙系统
小小猪的春天1 小时前
AI Code Review 例外决策框架:手动忽略警告之前,先回答4个问题
后端·架构
大卫陈1 小时前
微信小程序虚拟支付实战:从「支付能力被限制」到沙箱调通的全过程
前端·后端