阿里云服务器Ubuntu 22.04安装宝塔后如何配置Django?

在阿里云 Ubuntu 22.04 上安装宝塔面板(BT Panel)后配置 Django 项目,最推荐的方式是利用宝塔自带的 Python 项目管理器(宝塔内置的 Python 环境),这样既能享受图形化操作的便利,又能避免系统 Python 污染。以下是完整步骤:


✅ 前提条件

  • 已安装宝塔面板(建议安装最新版)
  • 已登录 SSH 或网页控制台
  • 已创建好 Django 项目源码(本地开发完成,需上传至服务器)

📌 步骤一:上传 Django 项目到服务器

  1. 通过 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/

  2. 确保项目包含以下关键文件:

    • manage.py
    • requirements.txt(含所有依赖)
    • static/media/ 目录(如有)
    • settings.py 中已配置 ALLOWED_HOSTSDEBUG=False 等生产参数

📌 步骤二:使用宝塔安装 Python 环境 & 管理 Django

  1. 登录宝塔面板 → 左侧菜单 【软件商店】 → 搜索并安装 Python 项目管理器(官方插件,非必需但强烈推荐)

    • 若未找到,可手动安装:进入【终端】执行:
      bt install python_manager
  2. 进入 【网站】 → 点击对应域名 → 【设置】 → 选择 Python 类型站点(若无此选项,先创建站点时选“纯静态”,后续再改;或直接新建站点时选“Python”)

    • 创建新站点时:
      • 站点类型:Python
      • 根目录:/www/wwwroot/your-domain.com/
      • Python 版本:建议选择 3.103.11(Ubuntu 22.04 默认支持良好)
      • 项目路径:填写你的 Django 项目子目录,如 myproject
      • WSGI 入口:通常是 wsgi.py(位于项目根目录)

⚠️ 注意:宝塔会自动为你创建虚拟环境(venv),无需手动 python -m venv


📌 步骤三:安装依赖 & 初始化数据库

  1. 在宝塔面板该站点的 Python 项目管理器 中:

    • 点击 【依赖包管理】
    • 上传 requirements.txt 或使用界面逐行添加(如 Django, gunicorn, psycopg2-binary, Pillow 等)
    • 点击 【安装】,自动在虚拟环境中安装
  2. 运行 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 = False
ALLOWED_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 是否执行、Nginx alias 路径是否正确

💡 进阶建议

  • 使用 .env 文件管理敏感信息(配合 python-decoupledjango-environ
  • 开启日志轮转:在宝塔【日志】中查看 error.log / access.log
  • 定期备份:宝塔一键备份数据库 + 网站文件

需要我提供:

  • 完整的 requirements.txt 示例?
  • settings.py 生产环境模板?
  • Docker 替代方案对比?

欢迎告诉我你的具体需求 😊

未经允许不得转载:CLOUD技术博 » 阿里云服务器Ubuntu 22.04安装宝塔后如何配置Django?