奋斗
努力

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

云计算

在 Ubuntu 22.04 上通过宝塔面板(Baota Panel)安装 Python 和 Django,最推荐的方式是直接使用宝塔自带的“网站”功能创建虚拟环境,而不是手动在系统全局安装。这种方式隔离性好、管理方便,且能避免依赖冲突。

以下是详细的操作步骤:

第一步:安装宝塔面板的 Python 运行库

如果你刚刚安装宝塔面板,它通常默认包含 Python 3.x 的运行环境。如果没有,请按照以下步骤操作:

  1. 登录宝塔面板后台。
  2. 进入左侧菜单栏的 “软件商店” (Software Store)。
  3. 在搜索框输入 Python。
  4. 找到 Python 环境管理器 (通常显示为 Python Environment Manager 或类似名称,版本建议选 3.8 或 3.10,Django 4.x 需要 Python 3.8+)。
  5. 点击右侧的 “安装”。
    • 注意:如果已经安装了多个版本,建议保留一个主要版本即可,避免混淆。

第二步:创建网站并绑定 Python 项目

这是最关键的一步,宝塔会自动为你创建独立的虚拟环境(venv)。

  1. 进入左侧菜单 “网站” (Website)。
  2. 点击 “添加站点” (Add Site)。
  3. 填写域名(如果是本地测试,可以填 localhost 或你本地的 IP),选择 PHP/Python 类型(这里虽然选的是 Python 相关选项,但宝塔是通过 Nginx/Apache 反向X_X来运行的)。
    • 关键设置:在“根目录”下方,有一个 “选择程序模板” 或 “运行环境” 选项。
    • 确保勾选了 Python,并选择你刚才安装的 Python 版本(例如 Python 3.10)。
    • 点击确定创建网站。

第三步:配置 Django 项目

创建好网站后,你需要将你的 Django 代码上传并配置。

1. 上传代码

  1. 点击该网站的 “文件”。
  2. 进入默认根目录(通常是 /www/wwwroot/你的域名)。
  3. 将你的 Django 项目文件夹内的所有文件上传到这里。
    • 建议结构:确保 manage.py 位于根目录下,或者将项目文件解压到一个子文件夹中,并在后续配置中指定路径。

2. 安装依赖 (pip install)

宝塔为每个网站提供了独立的终端权限。

  1. 在网站列表中,点击该站点的 “终端” (Terminal) 图标(通常在“设置”旁边,或者直接在文件页面右上角有终端入口)。
  2. 进入项目根目录(如果代码不在根目录,先用 cd 命令切换进去)。
  3. 激活虚拟环境(宝塔会自动创建名为 venv 的文件夹):
    source venv/bin/activate

    (如果找不到 venv,说明宝塔未自动创建,可以在网站设置的“运行目录”里查看)

  4. 安装 Django 及所需依赖:
    pip install django
    # 如果有 requirements.txt
    pip install -r requirements.txt

3. 修改 Django 配置 (settings.py)

由于是在生产/半生产环境运行,必须修改 settings.py 中的以下关键配置:

  • ALLOWED_HOSTS: 允许访问的域名。
    ALLOWED_HOSTS = ['你的域名', 'localhost', '127.0.0.1']
  • DEBUG: 生产环境必须关闭。
    DEBUG = False
  • STATIC_ROOT & STATIC_URL: 静态文件收集路径。
    import os
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    STATIC_URL = '/static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') # 确保这个目录存在且有写入权限
  • 数据库配置: 确保数据库账号密码正确,且数据库已创建。

第四步:启动 Django 服务

宝塔面板通常使用 Supervisor 来管理进程,或者让你直接通过 Nginx 反向X_X Gunicorn/uWSGI。

方法 A:使用宝塔自带的“守护进程” (推荐)

  1. 在宝塔左侧菜单找到 “计划任务” -> “守护进程” (或者在软件商店安装 Supervisor 插件)。
  2. 或者直接在该网站的 “设置” -> “启动方式” 中选择 Gunicorn 或 uWSGI。
    • 宝塔通常会自动生成启动命令。
    • 如果是手动配置,需要在 Nginx 配置文件 中添加反向X_X规则(宝塔会自动处理大部分,但需确认)。

方法 B:手动使用 Supervisor (更灵活)

  1. 在终端中安装 supervisor(如果未安装):

    sudo apt update && sudo apt install supervisor
  2. 创建配置文件 /etc/supervisor/conf.d/django.conf:

    [program:my_django]
    command=/www/wwwroot/你的域名/venv/bin/python /www/wwwroot/你的域名/manage.py runserver 0.0.0.0:8000
    directory=/www/wwwroot/你的域名
    user=www-data
    autostart=true
    autorestart=true
    redirect_stderr=true
    stdout_logfile=/var/log/my_django.log

    注意:生产环境强烈建议使用 gunicorn 代替 runserver。

    使用 Gunicorn 的正确命令示例:

    command=/www/wwwroot/你的域名/venv/bin/gunicorn myproject.wsgi:application --bind 0.0.0.0:8000

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

  3. 加载配置:

    sudo supervisorctl reread
    sudo supervisorctl update
    sudo supervisorctl start my_django

第五步:配置 Nginx 反向X_X

为了让外部用户通过域名访问,需要配置 Nginx。

  1. 在宝塔 “网站” 列表,点击该站点的 “设置” -> “端口”。
  2. 确保 Nginx 监听端口是 80 或 443。
  3. 点击 “伪静态” (Rewrite),选择 Django 模板,保存。
  4. 点击 “配置文件”,检查 location 块是否正确指向了后端端口(如 8000)。
    • 通常宝塔会自动生成如下配置:
      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;
      }
  5. 保存并重载 Nginx 配置。

常见问题排查

  • Permission Denied: 确保 /www/wwwroot/你的域名 目录的所有者是 www 用户。
    chown -R www:www /www/wwwroot/你的域名
  • Database Error: 检查 settings.py 中的数据库连接信息,并确保 MySQL/PostgreSQL 服务已启动且防火墙放行了相应端口。
  • Static Files 不显示: 记得运行 python manage.py collectstatic 收集静态文件到 STATIC_ROOT 指定的目录。

通过以上步骤,你就可以在 Ubuntu 22.04 + 宝塔面板上成功部署 Django 应用了。

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