宝塔(BT面板)部署Python项目图形化完整步骤

作者:

文章目录
  • 一台云服务器(推荐:Ubuntu 20.04/22.04 或 CentOS 7/8)。 放通安全组端口:22(SSH)、8888(面板首次登录口)、80/443(网站)。 有域名并完成解析(可选,用于 HTTPS)。
  • 这一步需 SSH 进入服务器;安装成功后其余基本用 GUI。若下述命令失效,请到宝塔官网下载最新脚本。 # Ubuntu/Debian 常见 wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh # CentOS 常见 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh 安装完成后终端会显示:面板地址(如 http://你的IP:8888)、初始账号/密码或初始化向导。若 8888 访问不到,检查云安全组与系统防火墙。
  • 浏览器打开 http://你的IP:8888 设置面板账号与密码。建议: 修改默认端口(面板设置里) 开启二次验证与登录提醒 进入软件商店安装常用组件: Nginx Python 项目管理器 / Python 管理 (按需)MySQL、Redis (站点里内置)Let’s Encrypt 证书
  • 打开软件商店 → Python 管理,安装所需 Python 版本(如 3.8/3.10/3.11)。 打开Python 项目管理器,点击创建虚拟环境,选择上面安装的 Python 版本,命名如 venv-fastapi。
  • 方式一(上传压缩包):面板 文件 → 上传 → 解压到 /www/wwwroot/your_project 方式二(Git 拉取):在面板终端或 Git 插件中执行 git clone 到上述目录 建议目录(FastAPI 示例): /www/wwwroot/your_project ├─ app/ │ └─ main.py # 入口(app = FastAPI()) ├─ requirements.txt └─ .env # 可选,存放环境变量
  • 进入 Python 项目管理器 → 虚拟环境 → 选择 venv,点击安装依赖,选择项目 requirements.txt。 国内环境可改为国内 PyPI 源以加速。
  • 新增项目,填写: 项目名称:fastapi-demo(示例) 项目路径:/www/wwwroot/your_project 运行用户:www 虚拟环境:选择你的 venv(如 venv-fastapi) 启动方式:ASGI(FastAPI/Starlette)或 WSGI(Flask/Django) 启动命令:见附录(不同框架不同) 开机自启:勾选 点击保存并启动,应看到“运行中”。失败请查看项目日志。
  • 网站 → 添加站点: 域名:yourdomain.com 网站目录:任意(若仅反代,可为空目录) 进入站点设置 → 反向代理: 目标 URL:http://127.0.0.1:8000 勾选启用反向代理 站点 → SSL: 选择 Let’s Encrypt,验证域名并签发 开启强制 HTTPS 此时访问 https://yourdomain.com 即转发到后端服务。
  • 静态文件(Nginx): location /static/ { alias /www/wwwroot/your_project/app/static/; expires 30d; access_log off; } 跨域(后端或 Nginx):FastAPI 可用 CORS 中间件;或在 Nginx 添加响应头按需处理。
  • 在“项目 → 启动命令”前添加: export ENV=prod SECRET_KEY=’your-secret’ && gunicorn … 或放 .env,配合 python-dotenv 读取。
  • Python 项目管理器 → 日志 查看启动/错误日志。 运行状态观察资源使用。 勾选开机自启即可随系统启动。
  • 在软件商店安装 MySQL/Redis。 数据库菜单新建库与用户,将连接信息配置进项目。
  • 面板打不开:检查 8888 端口、云安全组与系统防火墙。 项目启动失败/502:确认虚拟环境与依赖、启动命令模块路径是否正确,查看项目日志。 超时/504:业务阻塞或 worker 较少,适当提高 –workers、检查数据库/外部依赖。 依赖安装失败:切换国内源;有的库需系统依赖(如 build-essential、python3-dev、libmysqlclient-dev)。 HTTPS 失败:确保域名解析到当前服务器,80/443 放通且未被占用。
  • 假设:Python 3.8.19、项目在 /www/wwwroot/your_project。 目录与示例代码 /www/wwwroot/your_project ├─ app/ │ └─ main.py ├─ requirements.txt └─ .env (可选) app/main.py from fastapi import FastAPI app = FastAPI() @app.get(“/”) def hello(): return {“msg”: “Hello from FastAPI on Baota!”} requirements.txt fastapi uvicorn gunicorn python-dotenv Python 项目管理器表单 项目名称:fastapi-demo 项目路径:/www/wwwroot/your_project 运行用户:www 虚拟环境:选择已创建的 venv(基于 Python 3.8.19) 启动方式:ASGI / 自定义命令 启动命令: gunicorn -k uvicorn.workers.UvicornWorker app.main:app -b 127.0.0.1:8000 –workers 2 –timeout 60 开机自启:勾选 Nginx 反代(站点 → 反向代理) 目标 URL:http://127.0.0.1:8000 启用反向代理:勾选(SSL 在站点 → SSL 里申请并开启“强制 HTTPS”) 静态(可选) location /static/ { alias /www/wwwroot/your_project/app/static/; expires 30d; access_log off; }
  • 到此这篇关于宝塔(BT面板)部署Python项目的文章就介绍到这了,更多相关宝塔部署Python项目内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 云服务器使用宝塔搭建Python环境,运行django程序
  • 目录
    • 一、准备工作
    • 二、安装宝塔面板(一次性命令)
      • 查看宝塔面板信息命令
    • 三、首次进入宝塔面板(GUI)
      • 四、创建 Python 运行环境(GUI)
        • 五、上传或获取项目代码(GUI)
          • 六、安装依赖(GUI)
            • 七、用“Python 项目管理器”创建运行项目
              • 八、用 Nginx 反向代理到外网域名(含 SSL)
                • 九、静态文件与跨域(可选)
                  • 十、环境变量与密钥(可选)
                    • 十一、日志监控与开机自启
                      • 十二、数据库与 Redis(可选)
                        • 十三、常见问题速查
                          • 附录 A:FastAPI 可复制配置
                            • 总结 

                              适用于:Linux 服务器(Ubuntu/CentOS 等)+ 宝塔面板(Linux 版)。全程 GUI 操作为主, FastAPI 可复制配置。

                              • 一台云服务器(推荐:Ubuntu 20.04/22.04 或 CentOS 7/8)。
                              • 放通安全组端口:22(SSH)、8888(面板首次登录口)、80/443(网站)。
                              • 有域名并完成解析(可选,用于 HTTPS)。

                              这一步需 SSH 进入服务器;安装成功后其余基本用 GUI。若下述命令失效,请到宝塔官网下载最新脚本。

                              # Ubuntu/Debian 常见
                              wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
                              
                              # CentOS 常见
                              yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
                              

                              安装完成后终端会显示:面板地址(如 http://你的IP:8888)、初始账号/密码或初始化向导。若 8888 访问不到,检查云安全组与系统防火墙。

                              bt default
                              

                              运行后会显示类似如下信息:

                              外网面板地址: http://xxx.xxx.xxx.xxx:8888/xxxxxx
                              内网面板地址: http://xxx.xxx.xxx.xxx:8888/xxxxxx
                              username: xxxxxxxx
                              password: xxxxxxxx

                              1. 浏览器打开 http://你的IP:8888
                              2. 设置面板账号与密码。建议:
                                • 修改默认端口(面板设置里)
                                • 开启二次验证登录提醒
                              3. 进入软件商店安装常用组件:
                                • Nginx
                                • Python 项目管理器 / Python 管理
                                • (按需)MySQLRedis
                                • (站点里内置)Let’s Encrypt 证书

                              1. 打开软件商店 → Python 管理,安装所需 Python 版本(如 3.8/3.10/3.11)。
                              2. 打开Python 项目管理器,点击创建虚拟环境,选择上面安装的 Python 版本,命名如 venv-fastapi

                              • 方式一(上传压缩包):面板 文件 → 上传 → 解压到 /www/wwwroot/your_project
                              • 方式二(Git 拉取):在面板终端或 Git 插件中执行 git clone 到上述目录

                              建议目录(FastAPI 示例):

                              /www/wwwroot/your_project
                              ├─ app/
                              │  └─ main.py           # 入口(app = FastAPI())
                              ├─ requirements.txt
                              └─ .env                 # 可选,存放环境变量
                              

                              进入 Python 项目管理器 → 虚拟环境 → 选择 venv,点击安装依赖,选择项目 requirements.txt

                              国内环境可改为国内 PyPI 源以加速。

                              1. 新增项目,填写:
                                • 项目名称fastapi-demo(示例)
                                • 项目路径/www/wwwroot/your_project
                                • 运行用户www
                                • 虚拟环境:选择你的 venv(如 venv-fastapi
                                • 启动方式:ASGI(FastAPI/Starlette)或 WSGI(Flask/Django)
                                • 启动命令:见附录(不同框架不同)
                                • 开机自启:勾选
                              2. 点击保存并启动,应看到“运行中”。失败请查看项目日志

                              1. 网站 → 添加站点
                                • 域名yourdomain.com
                                • 网站目录:任意(若仅反代,可为空目录)
                              2. 进入站点设置 → 反向代理
                                • 目标 URLhttp://127.0.0.1:8000
                                • 勾选启用反向代理
                              3. 站点 → SSL
                                • 选择 Let’s Encrypt,验证域名并签发
                                • 开启强制 HTTPS

                              此时访问 https://yourdomain.com 即转发到后端服务。

                              静态文件(Nginx)

                              location /static/ {
                                  alias /www/wwwroot/your_project/app/static/;
                                  expires 30d;
                                  access_log off;
                              }
                              

                              跨域(后端或 Nginx):FastAPI 可用 CORS 中间件;或在 Nginx 添加响应头按需处理。

                              • 在“项目 → 启动命令”前添加:
                                export ENV=prod SECRET_KEY='your-secret' && gunicorn ...
                                
                              • 或放 .env,配合 python-dotenv 读取。

                              • Python 项目管理器 → 日志 查看启动/错误日志。
                              • 运行状态观察资源使用。
                              • 勾选开机自启即可随系统启动。

                              • 软件商店安装 MySQL/Redis。
                              • 数据库菜单新建库与用户,将连接信息配置进项目。

                              1. 面板打不开:检查 8888 端口、云安全组与系统防火墙。
                              2. 项目启动失败/502:确认虚拟环境与依赖、启动命令模块路径是否正确,查看项目日志。
                              3. 超时/504:业务阻塞或 worker 较少,适当提高 --workers、检查数据库/外部依赖。
                              4. 依赖安装失败:切换国内源;有的库需系统依赖(如 build-essentialpython3-devlibmysqlclient-dev)。
                              5. HTTPS 失败:确保域名解析到当前服务器,80/443 放通且未被占用。

                              假设:Python 3.8.19、项目在 /www/wwwroot/your_project

                              目录与示例代码

                              /www/wwwroot/your_project
                              ├─ app/
                              │  └─ main.py
                              ├─ requirements.txt
                              └─ .env   (可选)
                              

                              app/main.py

                              from fastapi import FastAPI
                              app = FastAPI()
                              
                              @app.get("/")
                              def hello():
                                  return {"msg": "Hello from FastAPI on Baota!"}
                              

                              requirements.txt

                              fastapi
                              uvicorn
                              gunicorn
                              python-dotenv
                              

                              Python 项目管理器表单

                              • 项目名称:fastapi-demo
                              • 项目路径:/www/wwwroot/your_project
                              • 运行用户:www
                              • 虚拟环境:选择已创建的 venv(基于 Python 3.8.19)
                              • 启动方式:ASGI / 自定义命令
                              • 启动命令:
                                gunicorn -k uvicorn.workers.UvicornWorker app.main:app -b 127.0.0.1:8000 --workers 2 --timeout 60
                                
                              • 开机自启:勾选

                              Nginx 反代(站点 → 反向代理)

                              • 目标 URL:http://127.0.0.1:8000
                              • 启用反向代理:勾选
                                (SSL 在站点 → SSL 里申请并开启“强制 HTTPS”)

                              静态(可选)

                              location /static/ {
                                  alias /www/wwwroot/your_project/app/static/;
                                  expires 30d;
                                  access_log off;
                              }
                              

                              到此这篇关于宝塔(BT面板)部署Python项目的文章就介绍到这了,更多相关宝塔部署Python项目内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

                              您可能感兴趣的文章:

                              • 云服务器使用宝塔搭建Python环境,运行django程序

                              站内搜索