宝塔面板在CentOS 7部署Django最省事路径是使用Python项目管理器,但须避开Python版本不匹配、STATIC_ROOT配置错误、Nginx静态路径alias写错三大硬坑。

宝塔面板在 CentOS 7 上部署 Django,用 Python 项目管理器是最省事的路径,但必须避开几个硬性坑:Python 版本不匹配、STATIC_ROOT 配置错误、Nginx 静态路径 alias 写错。直接按下面步骤操作,能绕开 90% 的 502/404/白屏问题。
安装宝塔并开放必要端口
CentOS 7 默认防火墙和云厂商安全组会拦掉所有非基础端口。不提前放行,后面连不上面板,更别说部署。
- 先执行安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh - 安装完立刻记下输出的登录地址、用户名、密码(比如
http://192.168.1.100:8888/abcd1234) - 去云服务器控制台(阿里云/腾讯云等)的安全组里,手动放行端口:
80、443、8888、22;CentOS 本地防火墙也要关或加规则:firewall-cmd --permanent --remove-service=firewalld && systemctl restart firewalld
装对 Python 版本 + Python 项目管理器
宝塔自带的 python2.7.5 不能跑现代 Django 项目。必须装独立 Python,且版本要和你本地开发环境一致(比如 Django 4.x 推荐 python3.8+)。
- 进宝塔「软件商店」→「宝塔插件」→ 搜索并安装「Python项目管理器」
- 安装完,点左侧菜单「Python项目管理器」→ 右上角「版本管理」→ 点「添加版本」→ 下载你要的版本(如
3.8.10),别选「极速安装」,选「编译安装」更稳 - 装完后确认:在终端执行
/www/server/python/bin/python3.8 --version能正确返回版本号;如果报错,说明编译失败,得重装或换低一点的版本(3.7.9更兼容 CentOS 7)
上传项目前必须做的三件事
跳过这三步,后面大概率 500 Internal Server Error 或静态资源全 404。不是可选项,是强制前置动作。
强戈环形山: q15040409-刻画家功能概述强戈环形山: q15040409-刻画家是一项面向实际任务的技能,主要用于平顶山: 维西翁: 1:1.0. 塔格斯: rap.github: 自动化。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。核心要点使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该
- 本地激活虚拟环境后,执行:
pip freeze > requirements.txt,确保文件在项目根目录(和manage.py同级) - 修改
settings.py:DEBUG = False-
ALLOWED_HOSTS = ['your-domain.com', '192.168.1.100'](不能留['*']生产环境) STATIC_URL = '/static/'-
STATIC_ROOT = os.path.join(BASE_DIR, 'static')(注意不是STATICFILES_DIRS)
- 本地运行:
python manage.py collectstatic --noinput,把所有静态文件归到项目根目录下的static/文件夹,然后把这个static/一起打包上传
Nginx 静态路由和项目管理器配置要点
宝塔「Python项目管理器」会自动生成 uWSGI 配置,但 Nginx 不会自动配静态路径——这是最常被忽略的一环,导致 CSS/JS 全部 404。
- 上传代码到
/www/wwwroot/your_project_name/(路径不能含中文或空格) - 在 Python 项目管理器中「添加项目」:
- 项目路径填完整绝对路径:
/www/wwwroot/your_project_name - Python 版本选你刚装好的(如
3.8.10) - 勾选「是否安装模块依赖」→ 它会自动读
requirements.txt并 pip install - 启动方式选
uWSGI(别选 Gunicorn,宝塔对 uWSGI 集成更成熟)
- 项目路径填完整绝对路径:
- 进「网站」→ 找到对应域名 →「配置文件」→ 在
server块里加这段(路径按你实际改):location /static/ { alias /www/wwwroot/your_project_name/static/; expires 30d; } - 保存后,务必点「重载配置」+ 在 Python 项目管理器里「重启项目」
真正卡住人的地方往往不是安装步骤,而是 STATIC_ROOT 和 Nginx alias 路径不一致、ALLOWED_HOSTS 没写对 IP 或域名、或者 requirements.txt 里漏了 psycopg2-binary(用 PostgreSQL 时)这类关键包。检查顺序建议:先看 uwsgi.log(在项目根目录或 /www/wwwroot/your_project_name/uwsgi.log),再看 Nginx error log,最后比对路径字符串是否完全一致——多一个斜杠、少一个字母都会失败。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










