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。

相关推荐
shark_chili几秒前
Spring 核心知识点全面解析
后端
WavesMan3 分钟前
YoBFF 实战复盘:让审计日志从“可用”走向“可运营
后端
SimonKing8 分钟前
企微、QQ统统接入OpenClaw,蓄水池已满,准备养虾
java·后端·程序员
CodeSheep15 分钟前
王自如公开招聘01号员工,这要求有多离谱?
前端·后端·程序员
洛阳泰山18 分钟前
我用 Java 21 虚拟线程重写了一个 RAG 平台:从架构设计到踩坑实录
java·人工智能·后端
moxiaoran575325 分钟前
使用springboot+flowable实现一个简单的订单审批工作流
java·spring boot·后端
IT_陈寒31 分钟前
JavaScript 闭包陷阱:90%开发者踩过的5个坑,你中招了吗?
前端·人工智能·后端
Java面试题总结31 分钟前
go从零单排之方法
开发语言·后端·golang
ZHOUPUYU36 分钟前
PHP性能分析与调优:从定位瓶颈到实战优化
开发语言·后端·html·php
稻草猫.41 分钟前
MyBatis-Plus高效开发全攻略
java·数据库·后端·spring·java-ee·mybatis·mybatis-plus