走啊走
加油

Ubuntu 22.04下宝塔面板安装Python和Django的步骤?

服务器价格表

在 Ubuntu 22.04 上安装宝塔面板(BT Panel)后,配置 Python 和 Django 环境通常有两种主流方式:

  1. 推荐方式:使用宝塔自带的 Python 管理插件(基于 pipenvvenv),适合大多数 Web 项目,部署简单。
  2. 传统方式:手动安装系统级 Python 和虚拟环境(不推荐,容易与系统库冲突)。

以下是基于宝塔自带 Python 管理功能的标准操作步骤,这是最稳定且易于维护的方案。


第一步:安装宝塔 Python 管理插件

默认安装的宝塔面板可能未包含 Python 管理模块,需要先安装插件。

  1. 登录宝塔面板后台。
  2. 点击左侧菜单的 “软件商店”
  3. 在搜索框输入 Python
  4. 找到 "Python 管理” (通常由宝塔官方提供),点击右侧的 “安装”
  5. 等待安装完成。

注意:Ubuntu 22.04 默认自带 Python 3.10,宝塔插件会自动识别并管理该版本,无需手动下载源码编译。


第二步:创建网站并绑定 Python 环境

在宝塔中,Django 项目必须运行在一个“网站”容器中。

  1. 点击左侧菜单 “网站” -> “添加站点”
  2. 填写域名(如果是本地测试可填 localhost 或 IP)、PHP/Python 版本选择:Python
  3. “数据库” 部分根据需要选择 MySQL 或 PostgreSQL(Django 通常需要数据库支持)。
  4. 点击提交。

第三步:上传代码并配置虚拟环境

1. 上传代码

进入 “文件” 菜单,将你的 Django 项目代码上传到对应的网站根目录(例如 /www/wwwroot/yourdomain.com)。确保项目结构完整,包含 manage.pyrequirements.txt

2. 初始化 Python 环境

  1. 回到 “网站” 列表,点击你刚才创建的站点右侧的 “设置”
  2. 点击顶部的 “Python 路径” 标签页(如果没有看到,请确保已安装 Python 管理插件)。
  3. "Python 版本” 下拉框中选择 Python 3.10(即 Ubuntu 22.04 默认版本)。
  4. 点击 “应用”。此时宝塔会在网站目录下自动生成一个 .python-version 文件和虚拟环境目录。

3. 安装依赖

  1. 点击左侧菜单 “终端”
  2. 切换到你的网站目录:
    cd /www/wwwroot/你的域名/
  3. 激活虚拟环境(宝塔通常自动处理,但为了保险可以显式激活):
    source venv/bin/activate
    # 或者如果宝塔使用的是 pipenv
    pipenv shell

    注:在宝塔新版中,通常直接在该目录下执行命令即可,它会自动调用虚拟环境。

  4. 安装项目依赖:
    pip install -r requirements.txt

    (如果没有 requirements.txt,请手动安装核心包,如 pip install django psycopg2-binary gunicorn)


第四步:配置 Nginx 反向X_X (关键步骤)

Django 本身是 WSGI 应用,不能直接由 Nginx 运行,需要通过 GunicornuWSGI 作为后端进程,Nginx 仅负责转发请求。

  1. 在宝塔 “网站” 设置页面,点击 “配置文件” 标签。
  2. 你会看到一段类似以下的配置。你需要修改 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 启动器)

    1. 在网站设置的 "Python 路径” 标签下,找到 “启动参数”“守护进程” 区域。
    2. 宝塔通常有一个 “一键部署”“运行模式” 按钮。
    3. 如果界面有 “运行模式” 选项,选择 Gunicorn
    4. 配置监听地址,通常为 127.0.0.1:8000(端口可自定义,但不能与系统端口冲突)。
    5. 点击 “保存”,宝塔会自动重启 Nginx 并启动 Gunicorn 进程。

第五步:Django 项目内部配置

为了让 Django 能正确运行,需要修改项目中的 settings.py 文件:

  1. ALLOWED_HOSTS: 必须添加你的域名。
    ALLOWED_HOSTS = ['你的域名', '127.0.0.1', 'localhost']
  2. DEBUG: 生产环境务必关闭。
    DEBUG = False
  3. STATIC_ROOT: 收集静态文件。
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
  4. 数据库配置: 确保连接的是宝塔创建的数据库用户,密码正确。

第六步:收集静态文件与迁移数据库

在终端中执行以下命令(确保已在网站目录且虚拟环境已激活):

# 1. 迁移数据库
python manage.py migrate

# 2. 收集静态文件 (非常重要,否则前端资源无法加载)
python manage.py collectstatic --noinput

# 3. 如果有超级管理员账号需求
python manage.py createsuperuser

第七步:验证与调试

  1. 检查服务状态
    在宝塔左侧菜单点击 “计划任务” -> “脚本”,或者直接查看 “进程” 管理,确认 gunicornuwsgi 进程是否正在运行。
    如果未运行,尝试在终端手动启动看报错:

    gunicorn your_project.wsgi:application --bind 127.0.0.1:8000

    (请将 your_project 替换为你实际的 Django 项目名称)

  2. 访问网站
    打开浏览器访问你的域名。

    • 如果看到 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 的宝塔面板上稳定运行了。