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

在 Ubuntu 22.04 上通过宝塔面板(BT Panel)部署 Python + Django 项目,核心逻辑其实非常清晰:利用宝塔的“软件商店”解决环境依赖,利用宝塔的“网站”功能配置反向X_X和进程守护。

很多新手容易卡在权限、虚拟环境路径或者 Nginx 配置上。下面我把步骤拆解为最实操的流程,跳过废话,直接上干货。

第一步:安装运行环境

  1. 登录宝塔面板:确保你已经安装了 Ubuntu 22.04 系统并完成了宝塔初始设置。
  2. 进入软件商店:点击左侧菜单【软件商店】。
  3. 搜索并安装:
    • 搜索 Python项目管理器(这是关键组件,用于管理 Python 项目和虚拟环境)。
    • 同时建议安装 Nginx 或 Apache(推荐 Nginx,性能更好),因为你需要用它来做反向X_X。
    • 注意:如果之前装过其他版本,请卸载冲突版本,保持环境干净。

第二步:创建 Python 项目

  1. 上传代码:

    • 你可以直接将 Django 项目文件夹通过【文件】管理器上传到服务器,例如 /www/wwwroot/myproject。
    • 或者使用 Git 拉取:在终端执行 cd /www/wwwroot && git clone your_repo_url myproject。
  2. 添加 Python 项目:

    • 回到【软件商店】 -> 找到已安装的 Python项目管理器 -> 点击【设置】或直接在首页找到入口。
    • 点击【添加项目】。
  3. 配置项目参数:

    • 项目名称:随意填,如 my_django_app。
    • 端口:填写一个未被占用的端口,如 8000(Django 默认开发端口,这里作为内部通信端口,不对外暴露)。
    • 启动方式:选择 Gunicorn(生产环境推荐,比 uWSGI 更稳定且资源占用更低)。
    • Python版本:选择你需要的版本(如 Python 3.10+,Ubuntu 22.04 默认支持较好)。
    • 项目路径:指向你上传代码的目录,如 /www/wwwroot/myproject。
    • 主模块名:通常是你 manage.py 同级目录下那个包含 wsgi.py 的文件夹名(例如你的项目叫 mysite,那这里就填 mysite)。
    • 虚拟环境:强烈建议勾选“创建虚拟环境”。这能避免全局包污染。创建后,记下虚拟环境的路径(通常在项目根目录下的 .venv 或类似文件夹)。
  4. 安装依赖:

    • 在项目列表中找到刚创建的项目,点击【编辑】或【依赖管理】。
    • 在依赖安装框中,填入你的 requirements.txt 内容,或者直接输入需要安装的包名(如 django, gunicorn, psycopg2-binary 等)。
    • 点击【安装】。等待安装完成。

第三步:配置数据库与静态文件

  1. 数据库配置:
    • 如果你用 SQLite,确保 db.sqlite3 文件有写入权限(chmod 666 db.sqlite3 或调整属主)。
    • 如果用 MySQL/PostgreSQL,先在宝塔【软件商店】安装对应数据库,创建数据库和用户,然后在 Django 的 settings.py 中配置好 DATABASES。
  2. 收集静态文件:
    • 在宝塔终端中,进入项目目录,激活虚拟环境:
      source .venv/bin/activate  # 假设虚拟环境名为 .venv
      python manage.py collectstatic --noinput
    • 这一步至关重要,否则前端 CSS/JS 会全部丢失。

第四步:配置 Nginx 反向X_X

这是让网络能访问的关键一步。

  1. 添加网站:
    • 点击宝塔左侧【网站】 -> 【添加站点】。
    • 域名填你的域名(如果没有域名,可以暂时填 IP,但需修改 hosts 测试)。
    • 根目录随便选,后面会覆盖。
  2. 修改 Nginx 配置:
    • 在网站列表中,找到刚创建的站点,点击【设置】 -> 【配置文件】。
    • 删除原有内容,替换为标准 Django + Gunicorn + Nginx 配置模板:
server {
    listen 80;
    server_name your_domain.com; # 替换为你的域名

    # 静态文件处理
    location /static/ {
        alias /www/wwwroot/myproject/static/; # 替换为你 collectstatic 后的实际路径
        expires 30d;
    }

    # 媒体文件处理(如果有用户上传)
    location /media/ {
        alias /www/wwwroot/myproject/media/; # 替换为你的 media 路径
        expires 30d;
    }

    # 反向X_X到 Python 项目
    location / {
        proxy_pass http://127.0.0.1:8000; # 必须与你 Python 项目中设置的端口一致
        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;

        # WebSocket 支持(如果需要)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
  1. 重载配置:保存配置文件后,点击【重载配置】按钮。

第五步:验证与排错

  1. 检查 Python 项目状态:
    • 回到【Python项目管理器】,确认项目状态为“运行中”。
    • 点击【日志】,查看是否有报错。常见错误包括:
      • Permission denied:确保项目目录及子目录对运行用户(通常是 www)有读写权限。
      • ModuleNotFoundError:依赖没安装成功,去依赖管理里重新安装。
  2. 浏览器访问:
    • 打开浏览器访问你的域名。
    • 如果看到 Django 欢迎页面或你的应用界面,说明部署成功。
    • 如果白屏或 502 Bad Gateway,重点检查 Nginx 错误日志(位于 /www/server/nginx/logs/error.log)和 Python 项目日志。

高级建议(避坑指南)

  • 安全组放行:别忘了在云服务器厂商的控制台(阿里云/AWS/腾讯云等)安全组中,只开放 80 (HTTP) 和 443 (HTTPS) 端口。不要 将 Django 的内部端口(如 8000)直接暴露在公网。
  • HTTPS 配置:在宝塔网站设置中,可以直接开启 HTTPS,并申请 Let’s Encrypt 免费证书,一键搞定 SSL。
  • 开机自启:宝塔的 Python 项目管理器通常会自动处理服务重启,但如果服务器重启,确保 Gunicorn 服务能随系统启动。可以在 Python 项目管理器的【设置】中检查是否勾选了“开机自动启动”。
  • DEBUG = False:生产环境中,务必在 settings.py 中将 DEBUG = False,并正确配置 ALLOWED_HOSTS,否则会出现 DisallowedHost 错误。

按照这个流程走,基本不会出错。如果遇到具体报错,把日志贴出来,针对性解决即可。

未经允许不得转载:云知道CLOUD » Ubuntu 22.04下宝塔面板安装Python和Django的步骤?