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。

相关推荐
Justin3go2 分钟前
丢掉沉重的记忆:Codex、Claude Code 与 OpenCode 的上下文压缩术
前端·后端·架构
不懂的浪漫12 分钟前
mqtt-plus 架构解析(五):错误处理与 ErrorAction 聚合策略
java·spring boot·后端·物联网·mqtt·架构
卷福同学33 分钟前
去掉手机APP开屏广告,李跳跳2.2下载使用
java·后端·算法
程序猿阿越1 小时前
Kafka4源码(三)Share Group共享组
java·后端·源码阅读
Slow菜鸟2 小时前
Spring Cloud 教程(四) | OpenFeign 的作用
后端·spring·spring cloud
GetcharZp2 小时前
告别付费云盘!这款开源 AI 相册神器,颜值与实力双飞,满足你对私人云端的一切幻想!
后端
朦胧之2 小时前
AI 编程工具使用浅谈
前端·后端
龙腾AI白云2 小时前
多模大模型应用实战:智能问答系统开发
python·机器学习·数据分析·django·tornado
架构谨制@涛哥3 小时前
《哥谭神话-Palantir故事篇》Palantir 产品战略与架构全景
后端·系统架构·软件构建
Flandern11113 小时前
Go程序员学习AI大模型项目实战02:给 AI 装上“大脑”:从配置解包到流式生成的深度拆解
人工智能·后端·python·学习·golang