在 Ubuntu 22.04 上安装宝塔面板(BT Panel)后,配置 Python 和 Django 环境通常有两种主流方式:
- 推荐方式:使用宝塔自带的 Python 管理插件(基于
pipenv或venv),适合大多数 Web 项目,部署简单。 - 传统方式:手动安装系统级 Python 和虚拟环境(不推荐,容易与系统库冲突)。
以下是基于宝塔自带 Python 管理功能的标准操作步骤,这是最稳定且易于维护的方案。
第一步:安装宝塔 Python 管理插件
默认安装的宝塔面板可能未包含 Python 管理模块,需要先安装插件。
- 登录宝塔面板后台。
- 点击左侧菜单的 “软件商店”。
- 在搜索框输入
Python。 - 找到 "Python 管理” (通常由宝塔官方提供),点击右侧的 “安装”。
- 等待安装完成。
注意:Ubuntu 22.04 默认自带 Python 3.10,宝塔插件会自动识别并管理该版本,无需手动下载源码编译。
第二步:创建网站并绑定 Python 环境
在宝塔中,Django 项目必须运行在一个“网站”容器中。
- 点击左侧菜单 “网站” -> “添加站点”。
- 填写域名(如果是本地测试可填
localhost或 IP)、PHP/Python 版本选择:Python。 - 在 “数据库” 部分根据需要选择 MySQL 或 PostgreSQL(Django 通常需要数据库支持)。
- 点击提交。
第三步:上传代码并配置虚拟环境
1. 上传代码
进入 “文件” 菜单,将你的 Django 项目代码上传到对应的网站根目录(例如 /www/wwwroot/yourdomain.com)。确保项目结构完整,包含 manage.py 和 requirements.txt。
2. 初始化 Python 环境
- 回到 “网站” 列表,点击你刚才创建的站点右侧的 “设置”。
- 点击顶部的 “Python 路径” 标签页(如果没有看到,请确保已安装 Python 管理插件)。
- 在 "Python 版本” 下拉框中选择 Python 3.10(即 Ubuntu 22.04 默认版本)。
- 点击 “应用”。此时宝塔会在网站目录下自动生成一个
.python-version文件和虚拟环境目录。
3. 安装依赖
- 点击左侧菜单 “终端”。
- 切换到你的网站目录:
cd /www/wwwroot/你的域名/ - 激活虚拟环境(宝塔通常自动处理,但为了保险可以显式激活):
source venv/bin/activate # 或者如果宝塔使用的是 pipenv pipenv shell注:在宝塔新版中,通常直接在该目录下执行命令即可,它会自动调用虚拟环境。
- 安装项目依赖:
pip install -r requirements.txt(如果没有
requirements.txt,请手动安装核心包,如pip install django psycopg2-binary gunicorn)
第四步:配置 Nginx 反向X_X (关键步骤)
Django 本身是 WSGI 应用,不能直接由 Nginx 运行,需要通过 Gunicorn 或 uWSGI 作为后端进程,Nginx 仅负责转发请求。
- 在宝塔 “网站” 设置页面,点击 “配置文件” 标签。
-
你会看到一段类似以下的配置。你需要修改
location / { ... }部分,使其指向 Gunicorn。标准 Nginx 配置示例:
location / { proxy_pass http://127.0.0.1:8000; # 这里端口需对应 Gunicorn 启动端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }注意:宝塔的 Python 管理插件通常会自动生成一段配置,或者你可以直接使用宝塔提供的“伪静态”或“运行模式”选项。
更简单的操作(使用宝塔内置的 Gunicorn 启动器):
- 在网站设置的 "Python 路径” 标签下,找到 “启动参数” 或 “守护进程” 区域。
- 宝塔通常有一个 “一键部署” 或 “运行模式” 按钮。
- 如果界面有 “运行模式” 选项,选择 Gunicorn。
- 配置监听地址,通常为
127.0.0.1:8000(端口可自定义,但不能与系统端口冲突)。 - 点击 “保存”,宝塔会自动重启 Nginx 并启动 Gunicorn 进程。
第五步:Django 项目内部配置
为了让 Django 能正确运行,需要修改项目中的 settings.py 文件:
- ALLOWED_HOSTS: 必须添加你的域名。
ALLOWED_HOSTS = ['你的域名', '127.0.0.1', 'localhost'] - DEBUG: 生产环境务必关闭。
DEBUG = False - STATIC_ROOT: 收集静态文件。
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') - 数据库配置: 确保连接的是宝塔创建的数据库用户,密码正确。
第六步:收集静态文件与迁移数据库
在终端中执行以下命令(确保已在网站目录且虚拟环境已激活):
# 1. 迁移数据库
python manage.py migrate
# 2. 收集静态文件 (非常重要,否则前端资源无法加载)
python manage.py collectstatic --noinput
# 3. 如果有超级管理员账号需求
python manage.py createsuperuser
第七步:验证与调试
-
检查服务状态:
在宝塔左侧菜单点击 “计划任务” -> “脚本”,或者直接查看 “进程” 管理,确认gunicorn或uwsgi进程是否正在运行。
如果未运行,尝试在终端手动启动看报错:gunicorn your_project.wsgi:application --bind 127.0.0.1:8000(请将
your_project替换为你实际的 Django 项目名称) -
访问网站:
打开浏览器访问你的域名。- 如果看到 Django 欢迎页面或登录页,说明成功。
- 如果显示 502 Bad Gateway:通常是 Gunicorn 没启动,或者 Nginx 配置的端口不对。
- 如果显示 403 Forbidden:检查目录权限 (
chown -R www:www /www/wwwroot/你的域名)。
常见问题排查
- 权限问题:如果提示 Permission denied,执行
chown -R www:www /www/wwwroot/你的域名。 - Gunicorn 未启动:宝塔的 Python 管理插件有时需要手动点击“启动”按钮,或者在“计划任务”中添加一个定时任务每分钟检测一次进程,发现停止则重启。
- 内存不足:Django + Gunicorn 比较吃内存。如果服务器内存小于 1GB,建议限制 Gunicorn 的工作进程数(Worker Count),例如设置为 2 或 4。
通过以上步骤,你的 Django 项目应该已经可以在 Ubuntu 22.04 的宝塔面板上稳定运行了。
CLOUD云计算