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。

相关推荐
冰_河1 小时前
QPS从300到3100:我靠一行代码让接口性能暴涨10倍,系统性能原地起飞!!
java·后端·性能优化
JavaGuide4 小时前
7 道 RAG 基础概念知识点/面试题总结
前端·后端
桦说编程4 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
格砸5 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
蝎子莱莱爱打怪5 小时前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
哈密瓜的眉毛美6 小时前
零基础学Java|第三篇:DOS 命令、转义字符、注释与代码规范
后端
用户60572374873086 小时前
AI 编码助手的规范驱动开发 - OpenSpec 初探
前端·后端·程序员
哈密瓜的眉毛美6 小时前
零基础学Java|第二篇:Java 核心机制与第一个程序:从 JVM 到 Hello World
后端
用户8307196840826 小时前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq