在阿里云 Ubuntu 22.04 上安装宝塔面板(BT Panel)后配置 Django 项目,最推荐的方式是利用宝塔自带的 Python 项目管理器(宝塔内置的 Python 环境),这样既能享受图形化操作的便利,又能避免系统 Python 污染。以下是完整步骤:
✅ 前提条件
- 已安装宝塔面板(建议安装最新版)
- 已登录 SSH 或网页控制台
- 已创建好 Django 项目源码(本地开发完成,需上传至服务器)
📌 步骤一:上传 Django 项目到服务器
-
通过 FTP/SFTP(如 FileZilla、WinSCP)或
scp命令将项目目录上传到/www/wwwroot/你的域名/下scp -r /path/to/your/django/project root@your-server-ip:/www/wwwroot/your-domain.com/💡 建议项目放在独立子目录,如:
/www/wwwroot/example.com/myproject/ -
确保项目包含以下关键文件:
manage.pyrequirements.txt(含所有依赖)static/和media/目录(如有)settings.py中已配置ALLOWED_HOSTS、DEBUG=False等生产参数
📌 步骤二:使用宝塔安装 Python 环境 & 管理 Django
-
登录宝塔面板 → 左侧菜单 【软件商店】 → 搜索并安装 Python 项目管理器(官方插件,非必需但强烈推荐)
- 若未找到,可手动安装:进入【终端】执行:
bt install python_manager
- 若未找到,可手动安装:进入【终端】执行:
-
进入 【网站】 → 点击对应域名 → 【设置】 → 选择 Python 类型站点(若无此选项,先创建站点时选“纯静态”,后续再改;或直接新建站点时选“Python”)
- 创建新站点时:
- 站点类型:Python
- 根目录:
/www/wwwroot/your-domain.com/ - Python 版本:建议选择 3.10 或 3.11(Ubuntu 22.04 默认支持良好)
- 项目路径:填写你的 Django 项目子目录,如
myproject - WSGI 入口:通常是
wsgi.py(位于项目根目录)
- 创建新站点时:
⚠️ 注意:宝塔会自动为你创建虚拟环境(
venv),无需手动python -m venv。
📌 步骤三:安装依赖 & 初始化数据库
-
在宝塔面板该站点的 Python 项目管理器 中:
- 点击 【依赖包管理】
- 上传
requirements.txt或使用界面逐行添加(如Django,gunicorn,psycopg2-binary,Pillow等) - 点击 【安装】,自动在虚拟环境中安装
-
运行 Django 迁移与收集静态文件:
- 打开 【终端】(宝塔内嵌)
- 切换到项目目录:
cd /www/wwwroot/your-domain.com/myproject - 激活虚拟环境(宝塔通常自动识别,也可显式激活):
source venv/bin/activate - 执行迁移:
python manage.py migrate - 收集静态文件:
python manage.py collectstatic --noinput - (可选)创建超级用户:
python manage.py createsuperuser
📌 步骤四:配置 Nginx + Gunicorn(宝塔自动处理)
宝塔在创建 Python 站点时会自动生成 Nginx 配置文件,关键点如下:
✅ 检查 /www/server/panel/vhost/nginx/你的域名.conf 是否包含:
location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock; # 或 gunicorn socket
uwsgi_param SCRIPT_NAME "";
}
# 静态文件X_X(宝塔已自动配置)
location /static/ {
alias /www/wwwroot/your-domain.com/myproject/static/;
}
# 媒体文件(如有)
location /media/ {
alias /www/wwwroot/your-domain.com/myproject/media/;
}
🔧 若使用的是 Gunicorn(推荐生产环境):
- 在 Python 项目管理器中,启动服务时选择 Gunicorn
- 监听端口设为
8000(内部),由 Nginx 反向X_X到 80/443 - 启动命令示例(自动保存):
gunicorn myproject.wsgi:application --bind unix:/tmp/gunicorn.sock --workers 3
✅ 宝塔会自动监控进程,崩溃时重启。
📌 步骤五:安全与优化配置
| 项目 | 操作 |
|---|---|
| 🔒 SSL 证书 | 【SSL】标签页申请免费 Let’s Encrypt 证书并强制 HTTPS |
| 🛡️ 防火墙 | 【安全】标签页放行 80/443,关闭 22(改用密钥登录) |
| 📁 权限 | 确保项目目录属主为 www:chown -R www:www /www/wwwroot/your-domain.com/chmod -R 755 ... |
| 🧪 DEBUG 模式 | 务必在 settings.py 中设置:DEBUG = FalseALLOWED_HOSTS = ['your-domain.com', 'localhost'] |
| 🗄️ 数据库 | 推荐用宝塔安装的 MySQL 8.0/PostgreSQL,修改 DATABASES 配置连接 |
🧪 验证部署
访问 http://your-domain.com/admin 或首页:
- ✅ 页面正常加载 → 成功
- ❌ 502 Bad Gateway → 检查 Gunicorn/UWSGI 是否启动(终端
ps aux | grep gunicorn) - ❌ 404 on static files → 检查
collectstatic是否执行、Nginxalias路径是否正确
💡 进阶建议
- 使用
.env文件管理敏感信息(配合python-decouple或django-environ) - 开启日志轮转:在宝塔【日志】中查看
error.log/access.log - 定期备份:宝塔一键备份数据库 + 网站文件
需要我提供:
- 完整的
requirements.txt示例? settings.py生产环境模板?- Docker 替代方案对比?
欢迎告诉我你的具体需求 😊
CLOUD技术博