如何在CentOS系统中部署Django项目

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

以下操作均需要使用ROOT权限

如何在CentOS系统中部署Django项目

准备工作

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运行成功。

如何在CentOS系统中部署Django项目

可能通过 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配置的一致
        }
    }
如何在CentOS系统中部署Django项目

进入/usr/local/nginx/sbin/目录

执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:

./nginx

终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。

访问项目

进入网站项目目录

启动uwsgi

uwsgi  --ini  uwsgi.ini

以上步骤都没有出错的话。

进入/usr/local/nginx/sbin/目录,执行:

./nginx -s reload

重启nginx 。

然后在浏览器里访问项目地址!

如何在CentOS系统中部署Django项目

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

原创文章,作者:Rosmontis,如若转载,请注明出处:https://rosmontis.com/archives/199

(0)
Rosmontis的头像Rosmontis
机架服务器DELL戴尔R720XD后置背板安装(瞎折腾)
上一篇 2022年5月6日 下午1:08
Django安全防御—如何防范跨站脚本攻击(XSS)以及跨站请求伪造(CSRF)攻击
下一篇 2022年5月6日 下午1:56

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注