Django项目写好了以后,我们要把它丢上服务器来运行。介绍一下Django在CentOS系统下的部署,基于centos8+nginx +uwsgi+python3.8+django。本次是使用虚拟机(VMware)搭建CentOS8系统。
以下操作均需要使用ROOT权限

准备工作
1.系统环境更新
yum update -y
2.安装软件管理包与依赖
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
3.安装python环境
cd /usr/local
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz
解压
tar -zxvf Python-3.8.1.tgz
进入 Python-3.8.1路径
cd Python-3.8.1
编译安装到指定路径
./configure --prefix=/usr/local/python3
安装python3
依次执行
make
make install
注:如果遇到make失败的情况下,就需要执行第1,2两步,然后把解压后的文件删除,重新解压,再进入文件夹后执行./configure 等后续的操作
安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
Python3安装完成之后pip3也一块安装完成,不需要再单独安装
同样给pip3建立软链接
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
这里需要注意:因为CentOS8的系统自带了python3.6 ,所以需要先删除之前的软链接,(可使用Python3 -v确认版本号)
4.安装django与uwsgi
pip3 install django #与项目版本保持一致
pip3 install uwsgi
如果这里失败的话,考虑是否是ROOT权限以及是否执行第1、2 两步。
本地项目搬迁到服务器
搬迁与windows服务器部署类似,需要导出环境依赖包到requirements.txt文件
pip freeze > requirements.txt
然后就是把整个项目文件压缩打包上传到服务器,因为我这里使用的是虚拟机,所以直接使用SecureCRT工具连接后,使用rz命令直接上传,(若rz命令失败,考虑是否使用ROOT权限)。
上传到服务器解压后进入项目路径安装requirements.txt里的依赖包
pip3 install -r requirements.txt
使用runserver 启动项目 看监测环境是否安装成功,注意需要修改ALLOWED_HOSTS,['*'],可以让任何IP访问。
配置uwsgi
在项目文件的根目录下创建uwsgi.ini文件,设置uwsgi属性
#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket=127.0.0.1:8997
#配置项目路径,项目的所在目录
chdir=/usr/local/wwwroot/website/
#配置wsgi接口模块文件路径,也就是wsgi.py这个文件所在的目录名
wsgi-file=website/wsgi.py
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=uwsgi.log`
通过下面的命令启动运行uwsgi
uwsgi --ini uwsgi.ini
显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功。

可能通过 ps -ef|grep uwsgi 查看确认是否uwsgi启动.
ini配置文件其它相关命令:
#停止运行uwsgi
uwsgi --stop uwsgi.pid
#重启uwsgi
uwsgi --reload uwsgi.pid
安装nginx
下载nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
解压
tar -zxvf nginx-1.18.0.tar.gz
进入解压后的nginx-1.18.0文件夹,依次执行以下命令:
./configure
make
make install
nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak
然后打开nginx.conf,修改以下内容:
server {
listen 80;
server_name 127.0.0.1;#有域名可以填写域名
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
include uwsgi_params;
uwsgi_pass 127.0.0.1:8997;#这里的端口需要与之前在uwsgi配置的一致
}
}

进入/usr/local/nginx/sbin/目录
执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:
./nginx
终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。
访问项目
进入网站项目目录
启动uwsgi
uwsgi --ini uwsgi.ini
以上步骤都没有出错的话。
进入/usr/local/nginx/sbin/目录,执行:
./nginx -s reload
重启nginx 。
然后在浏览器里访问项目地址!

需要特别注意的是一定都需要使用ROOT权限执行以及仔细检查防止拼写错误。如涉及到静态文件还需要进一步配置,这个大家可以自己研究一下。
文章评论