CentOS 8怎么安装配置Django?Django环境搭建教程

在CentOS 8上安装和配置Django的核心步骤是:通过DNF包管理器安装Python及依赖,创建虚拟环境,使用Pip安装Django,最后通过Nginx与Gunicorn构建生产级Web服务器架构。

很多开发者在搭建Python后端环境时,往往被CentOS 8的包管理变化和环境隔离问题困扰,特别是对于习惯使用Ubuntu或Debian的用户来说,RHEL系发行版的逻辑差异容易导致配置失误,本文将提供一套经过验证的实操方案,确保你在2026年的技术栈中,能够稳定、高效地部署Django应用。

Python Django教程 - 安装及配置项目
加载中
Python Django教程 - 安装及配置项目

CentOS 8环境准备与Python安装

Django是基于Python开发的,因此第一步是确保系统拥有正确版本的Python,CentOS 8默认包含Python 3.6,但对于现代Django版本(如4.x或5.x),建议安装更新的Python 3.9或更高版本。

更新系统包管理器

在开始任何安装之前,刷新软件源索引是基础操作,打开终端,执行以下命令:

sudo dnf update -y

这一步能确保你获取最新的软件包元数据,避免后续安装出现版本冲突。

安装Python 3及必要依赖

CentOS 8的AppStream仓库中通常包含较新的Python版本,如果默认版本过低,可以通过模块流(Module Stream)切换。

sudo dnf module install python39 -y

安装完成后,验证Python版本:

python3 --version

还需要安装编译工具和开发库,因为某些Django依赖包(如psycopg2用于PostgreSQL连接)需要C编译器:

sudo dnf install gcc libpq-devel python3-devel -y

业内专家指出,忽略开发库的安装是导致许多第三方库编译失败的常见原因,务必确保这些依赖齐全。

虚拟环境配置与Django安装

在生产环境中,绝对不要在全局Python环境中安装Django,虚拟环境能隔离项目依赖,防止系统级冲突。

创建虚拟环境

使用Python自带的venv

CentOS 8怎么安装配置Django?Django环境搭建教程

模块创建隔离环境,假设你的项目目录为/var/www/myproject

cd /var/www
sudo mkdir myproject
sudo chown $USER:$USER myproject
cd myproject
python3 -m venv venv

激活虚拟环境:

source venv/bin/activate

激活后,命令行提示符前会出现(venv)字样,表明当前环境已切换。

安装Django及相关依赖

在虚拟环境中,使用Pip安装Django,建议指定版本以确保稳定性:

pip install django gunicorn psycopg2-binary

这里安装gunicorn作为生产级WSGI服务器,psycopg2-binary用于连接PostgreSQL数据库,如果项目轻量,也可使用MySQL,需安装mysqlclient

安装完成后,验证Django版本:

django-admin --version

你的开发环境已就绪,接下来需要配置Django项目本身。

Django项目初始化与安全配置

创建项目并配置生产环境参数是部署的关键环节,许多新手在此阶段因配置不当导致安全漏洞或服务无法启动。

创建新项目

django-admin startproject config .

注意末尾的点号,这会将项目文件创建在当前目录,便于管理。

配置settings.py

编辑config/settings.py文件,修改以下关键参数:

  1. ALLOWED_HOSTS:必须填入你的服务器IP地址或域名。ALLOWED_HOSTS = ['your_domain.com', '192.168.1.100'],如果不配置,Django将拒绝所有外部请求。
  2. DEBUG:生产环境中必须设置为False,这会隐藏错误详情,提升安全性。
  3. SECRET_KEY:使用python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'生成新的密钥,并替换默认值。
  4. 数据库设置:根据你选择的数据库(PostgreSQL/MySQL),配置

    CentOS 8怎么安装配置Django?Django环境搭建教程

    DATABASES字典中的ENGINE、NAME、USER和PASSWORD。

静态文件收集

Django在开发模式下自动处理静态文件,但在生产模式下,需要手动收集它们。

python manage.py collectstatic

这会将所有静态资源(CSS、JS、图片)复制到STATIC_ROOT指定的目录,供Nginx直接服务。

Nginx与Gunicorn生产环境部署

Gunicorn负责处理Python请求,Nginx作为反向代理处理静态文件和负载均衡,这种组合是业内共识认为最稳定的Django部署方案。

安装Nginx

sudo dnf install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

创建Gunicorn服务文件

/etc/systemd/system/目录下创建gunicorn.service文件:

[Unit]
Description=Gunicorn daemon for Django project
After=network.target
[Service]
User=your_username
Group=nginx
WorkingDirectory=/var/www/myproject
ExecStart=/var/www/myproject/venv/bin/gunicorn --workers 3 --bind unix:/var/www/myproject/myproject.sock config.wsgi:application
[Install]
WantedBy=multi-user.target

注意替换your_username和项目名称。--bind unix:/var/www/myproject/myproject.sock指定了Gunicorn通过Unix socket与Nginx通信,比TCP端口更高效且安全。

启动并启用Gunicorn:

sudo systemctl start gunicorn
sudo systemctl enable gunicorn

配置Nginx反向代理

/etc/nginx/conf.d/目录下创建myproject.conf

server {
    listen 80;
    server_name your_domain.com;
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /var/www/myproject;
    }
    location / {
        include proxy_params;
        proxy_pass http://unix:/var/www/myproject/myproject.sock;
    }
}

重启Nginx使配置生效:

CentOS 8怎么安装配置Django?Django环境搭建教程

sudo systemctl restart nginx

防火墙与SELinux配置

CentOS 8默认启用防火墙和SELinux,未正确配置会导致访问被拒。

开放HTTP/HTTPS端口

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

SELinux权限设置

如果SELinux阻止Gunicorn创建socket或访问静态文件,需设置上下文:

sudo setsebool -P httpd_can_network_connect 1
sudo chcon -Rt httpd_sys_rw_content_t /var/www/myproject/static

常见问题排查与维护

部署完成后,监控日志是维护的关键。

查看日志

Gunicorn日志可通过journalctl查看:

sudo journalctl -u gunicorn

Nginx错误日志位于/var/log/nginx/error.log

自动重启机制

确保Gunicorn在系统重启后自动启动,已在[Install]部分配置,若服务异常,可手动重启:

sudo systemctl restart gunicorn

CentOS 8安装Django常见问题解答

CentOS 8如何安装Django虚拟环境

使用python3 -m venv venv创建环境,并通过source venv/bin/activate激活,务必确保Python版本符合Django要求,且所有依赖在虚拟环境中安装,避免污染系统环境。

Django生产环境Nginx配置要点

核心在于设置proxy_pass指向Gunicorn的Unix socket,并正确配置STATIC_ROOT路径,必须设置ALLOWED_HOSTS以匹配域名,否则Django将返回400错误。

CentOS 8配置Django防火墙规则

使用firewall-cmd --permanent --add-service=http开放80端口,--add-service=https开放443端口,最后执行--reload生效,若使用SELinux,需额外配置httpd_can_network_connect布尔值以允许Nginx代理请求。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/401546.html

(0)
cn2cdn是什么?cn2cdn加速原理及使用方法详解
上一篇 2026年6月19日 18:29
WooCommerce结账页怎么改?商店自定义结账页面设置教程
下一篇 2026年6月19日 18:35

相关推荐

  • 网站建设选二级域名还是目录?二级域名和一级目录SEO哪个更好

    二级域名适合独立业务线或品牌隔离,一级目录利于权重集中与SEO效率,多数中小型企业应优先选择一级目录以获取更快的收录速度和更高的搜索排名潜力,在搭建网站时,架构选择往往被忽视,但它直接决定了搜索引擎如何抓取和评估你的内容,很多站长在初期犹豫不决,担心选错路径导致流量流失,这并非玄学,而是基于搜索引擎算法对网站结……

    2026年6月17日
    16400
  • 如何用SEMrush优化Shopify SEO?Shopify SEO优化技巧有哪些

    利用SEMrush进行Shopify SEO优化的核心在于通过其Keyword Magic工具挖掘高转化长尾词,结合Site Audit修复技术漏洞,并借助Position Tracking监控排名变化,从而在2026年更智能的搜索环境中获取精准流量,Shopify商家往往陷入一个误区,认为只要产品好,流量自然……

    2026年6月25日
    1300
  • 广告制作语音合成怎么做,哪个语音合成软件好用

    高质量的语音合成技术已成为提升广告转化率的关键驱动力,能够以极低的成本实现专业级的听觉体验,直接决定用户对品牌的第一印象,在数字化营销时代,广告制作语音合成不再是简单的文字转语音,而是品牌人格化塑造与营销效率提升的核心环节,通过精准的语音合成方案,企业能够将广告制作周期缩短50%以上,并保持品牌声音的高度一致性……

    2026年4月3日
    9600
  • 广州30g高防dns解析打不开怎么办?高防DNS无法解析如何解决

    广州30g高防dns解析打不开的核心症结,通常集中在DNS缓存污染、防火墙策略误杀、以及源站端口回源异常三个维度,解决问题的关键在于精准排查链路节点并优化解析策略,面对高防服务无法访问的突发状况,盲目等待只会延长业务中断时间,通过系统性的排查流程,结合简米科技的高防智能解析方案,绝大多数解析故障能在短时间内得到……

    2026年3月31日
    8200
  • https如何实现用什么证书?https证书申请流程及费用

    HTTPS实现的核心在于部署由受信任的证书颁发机构(CA)签发的SSL/TLS证书,通过非对称加密建立安全通道,确保数据在传输过程中的机密性与完整性,很多站长或企业IT负责人在构建网站时,往往只关注页面加载速度或SEO排名,却忽略了底层的安全协议,HTTPS不仅仅是浏览器地址栏里的那把小锁,它是现代互联网信任体……

    2026年6月2日
    3300
  • HTML代码如何存入数据库?html存入数据库报错怎么解决

    “}`,后端解析:后端框架(如Spring Boot、Django、Express)会自动解析JSON,提取出HTML字符串,数据库表结构设计选择合适的字段类型至关重要,HTML代码可能包含大量特殊字符和换行,因此不能简单使用VARCHAR(255),字段类型适用场景优缺点VARCHAR(255)极短的HTML……

    2026年6月12日
    2700
  • Namecheap域名续费多少钱一年?域名续费价格表最新一览

    Namecheap域名续费价格因后缀不同而异,通用顶级域名(如.com、.net)通常比首年注册价略高,但远低于多数竞争对手,具体费用需以官网实时显示为准,建议开启自动续费以防丢失,域名续费看似简单,实则暗藏玄机,很多站长在域名到期前一周才去查看价格,结果发现不仅价格翻倍,还可能因为错过续费窗口期而面临赎回的高……

    2026年6月24日
    1500
  • NameSilo怎么改NS服务器?域名NS服务器怎么修改

    在NameSilo管理后台找到域名列表,点击目标域名旁的”Manage”进入详情页,在”Nameservers”区域选择”Custom”并填入新NS记录,最后保存即可生效,整个过程通常只需几分钟,域名解析服务器(NS)的变更是网站迁移、CDN接入或DNS服务商切换时的关键操作,很多站长在更换服务器时,往往忽略了……

    2026年6月19日
    1410
  • 域名解析错误是什么意思?域名解析错误怎么解决?

    域名解析错误意味着浏览器无法将您输入的网址转换为服务器的IP地址,导致网页无法加载,这通常由DNS配置失误、本地缓存污染或网络连通性问题引起,当您看到“DNS_PROBE_FINISHED_NXDOMAIN”或“无法访问此网站”等提示时,不必惊慌,这就像您拿着正确的门牌号(域名)去拜访朋友,但邮递员(DNS服务……

    2026年6月23日
    2410
  • 广州4U服务器托管费用贵吗?广州机房服务器托管多少钱

    广州4U服务器托管费用通常在每月1500元至3500元之间,具体取决于机房等级、带宽类型及是否包含IP地址,建议优先选择具备BGP多线接入能力的A级机房以保障稳定性,对于许多中小企业和技术团队而言,将服务器托管在广州这样的一线城市机房,是平衡网络延迟、硬件维护成本和数据安全性的最优解,4U机架式服务器作为企业级……

    2026年6月16日
    2700

发表回复

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