“ 在lnmp部署Django时,笔者踩过太多坑了,笔者不得不开一页来记录步骤。”
大概的思路
安装Linux 系统下的环境
python3
nginx
mysql(根据自己的项目而定)
CentOS 搭建LNMP环境
Django 项目所需要的 Python3 模块(笔者最初用的虚拟环境,后来考虑到一些因素改为真实环境,可能是一种技术上的提升吧,或者是懒)
另在装 uwsgi 模块
pip3 install uwsgi
完成以上后,需要把项目文件的代码同步至服务器,pycharm同步方法见:
Python 入门篇
中的一个视频
笔者这里同步在CentOS 中的路径为 /home/www/web/
这是笔者的网站:https://cloudbyte.club/ 项目
然后返回上层目录
其中 web 是Django项目所有的目录,而django.ini 就是uwsgi文件,这里也是我们接下来要创建的文件(/home/www/)下
配置uwsgi文件
vim django.ini# 以下内容[uwsgi]socket = :8000chdir = /home/www/webwsgi-file = web/wsgi.pyuid = rootgid = rootprocesses = 4threads = 2daemonize=/home/www/uwsgi.log
home = /home/www/"python3虚拟环境目录" # 配置虚拟环境,如无省略
确认输入无误后 按 esc后,输入:wq 回车保存(vim操作)
具体可见 uwsgi 官网
http://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/
启动uwsgi
uwsgi --ini ./django.ini
Nginx 配置
nginx默认安装位置于 /etc/nginx/
关于nginx 可以查看笔者的第一篇幅推文
CentOS 搭建LNMP环境
配置文件 (vim /etc/nginx/nginx.conf)
upstream django { server "ip":8000;}# configuration of the serverserver { listen 80; server_name "ip"; charset utf-8; client_max_body_size 75M; location /media { alias /home/www/web/media; } location /static { alias /home/www/web/static; } location / { uwsgi_pass django; include /etc/nginx/uwsgi_params; }}
使用的是 80 端口,nginx其他配置详见:
https://www.nginx.cn/doc/
关于nginx
如有不明白可以添加笔者微信
笔者一定知无不言
打开linux的防火墙端口
8000 (uwsgi)| 80(nginx)| 443(需有443)
重启nginx服务器,就OK了,当然别忘记了 数据库等配置是否正确
500 错误 90%是项目代码有误
502 nginx配置问题
最后笔者为自己的nginx443做一份记录
https://pasteme.cn/68801 密码:微信号
然后就是一份linux脚本,用于快速启动 redis uwsgi nginx
#!/bin/shservice redis start && uwsgi --ini /home/www/django.ini && service nginx restart
可以理解为 脚本以 && 分割成三部分
第一部分是:启动redis
第二部分是:启动uwsgi配置
第三部分是:启动nginx