149 lines
4.8 KiB
Markdown
149 lines
4.8 KiB
Markdown
# 宝塔面板 - 添加 Python 项目 填写说明
|
||
|
||
按截图「添加Python项目」表单,逐项填写如下。
|
||
|
||
## 前置条件
|
||
|
||
1. **Python 环境必须先修好**(环境管理里选 3.10 或 3.11)
|
||
- SSH 验证:`python3.11 -c "import ssl; print(ssl.OPENSSL_VERSION)"`
|
||
- 若报 `No module named '_ssl'`,先在服务器执行:
|
||
```bash
|
||
yum install -y openssl openssl-devel
|
||
AUTO_BUILD_PYTHON=1 bash /www/wwwroot/douyin/install.sh
|
||
```
|
||
- 然后在宝塔 **环境管理** 添加解释器:`/usr/local/python3.11/bin/python3.11`
|
||
|
||
2. **安装 Node.js 18+**(软件商店 -> Node 版本管理器)
|
||
|
||
3. 将项目代码放到 `/www/wwwroot/douyin/`
|
||
|
||
---
|
||
|
||
## 使用宝塔安装的 Python(推荐)
|
||
|
||
若已在 **Python项目管理器 → 环境管理** 安装了 Python 3.11,一键配置:
|
||
|
||
```bash
|
||
cd /www/wwwroot/douyin
|
||
chmod +x backend/baota_use_panel_python.sh
|
||
bash backend/baota_use_panel_python.sh
|
||
```
|
||
|
||
脚本会自动扫描 `/home/www/server/pyporject_evn/versions/` 等宝塔目录,选用 **3.10+ 且带 SSL** 的版本,安装依赖、venv、Chromium。
|
||
|
||
若提示 **无 SSL**,先在 SSH 执行 `yum install -y openssl openssl-devel`,再在宝塔 **卸载并重装** Python 3.11。
|
||
|
||
---
|
||
|
||
## 表单填写
|
||
|
||
| 字段 | 填写值 | 说明 |
|
||
|------|--------|------|
|
||
| **项目名称** | `douyin` | 任意英文名 |
|
||
| **Python环境** | `3.11.x`(环境管理里带 SSL 的版本) | 不要选缺 _ssl 的坏环境 |
|
||
| **启动方式** | **命令行启动** | FastAPI 用 uvicorn,勿选 gunicorn/uwsgi |
|
||
| **项目路径** | `/www/wwwroot/douyin/backend` | **必须是 backend 目录**,不是项目根目录 |
|
||
| **启动命令** | `bash /www/wwwroot/douyin/backend/baota_start.sh` | 使用项目自带启动脚本 |
|
||
| **环境变量** | **从文件加载** | 文件路径:`/www/wwwroot/douyin/.env` |
|
||
| **启动用户** | `www` | 默认即可 |
|
||
| **安装依赖包** | `/www/wwwroot/douyin/backend/requirements.txt` | 宝塔自动 pip install |
|
||
| **项目初始化命令** | `bash /www/wwwroot/douyin/backend/baota_init.sh` | 装 Playwright、npm、构建前端 |
|
||
|
||
---
|
||
|
||
## .env 文件(项目根目录)
|
||
|
||
复制 `.env.example` 为 `/www/wwwroot/douyin/.env`:
|
||
|
||
```bash
|
||
cp /www/wwwroot/douyin/.env.example /www/wwwroot/douyin/.env
|
||
```
|
||
|
||
至少修改:
|
||
|
||
```
|
||
KEFU_SECRET_KEY=随机长字符串
|
||
KEFU_ADMIN_PASSWORD=强密码
|
||
KEFU_SERVE_WEB=true
|
||
PLAYWRIGHT_BROWSERS_PATH=/www/wwwroot/douyin/playwright-browsers
|
||
```
|
||
|
||
---
|
||
|
||
## 权限
|
||
|
||
```bash
|
||
chown -R www:www /www/wwwroot/douyin
|
||
chmod +x /www/wwwroot/douyin/backend/baota_init.sh
|
||
chmod +x /www/wwwroot/douyin/backend/baota_start.sh
|
||
chmod +x /www/wwwroot/douyin/backend/baota_fix.sh
|
||
chmod +x /www/wwwroot/douyin/install.sh
|
||
chmod +x /www/wwwroot/douyin/start.sh
|
||
```
|
||
|
||
## 报错快速修复
|
||
|
||
若浏览器访问 `http://IP:8000` 显示 **连接被拒绝 (ERR_CONNECTION_REFUSED)**:
|
||
|
||
```bash
|
||
bash /www/wwwroot/douyin/backend/baota_status.sh # 诊断
|
||
bash /www/wwwroot/douyin/backend/baota_fix.sh # 修依赖
|
||
bash /www/wwwroot/douyin/backend/baota_init.sh # 初始化
|
||
```
|
||
|
||
然后在宝塔 **Python项目 -> douyin -> 设置** 里确认启动命令:
|
||
|
||
```bash
|
||
bash /www/wwwroot/douyin/backend/baota_start.sh
|
||
```
|
||
|
||
保存后点 **重启**。SSH 可手动测试:
|
||
|
||
```bash
|
||
bash /www/wwwroot/douyin/backend/baota_start.sh
|
||
# 另开终端: curl http://127.0.0.1:8000/api/health
|
||
```
|
||
|
||
**云服务器**还需在安全组放行 **TCP 8000**。
|
||
|
||
若日志出现 `.venv/bin/uvicorn 没有那个文件` 或 `No module named uvicorn`:
|
||
|
||
```bash
|
||
bash /www/wwwroot/douyin/backend/baota_fix.sh
|
||
```
|
||
|
||
然后在宝塔 **Python项目 -> douyin -> 设置** 里,把启动命令改成:
|
||
|
||
```bash
|
||
bash /www/wwwroot/douyin/backend/baota_start.sh
|
||
```
|
||
|
||
**切勿**在 Linux 上运行 `start_web.bat`。
|
||
|
||
---
|
||
|
||
## 常见错误
|
||
|
||
| 现象 | 原因 | 处理 |
|
||
|------|------|------|
|
||
| pip 报 SSL module not available | 宝塔 Python 环境缺 OpenSSL | 环境管理换 `/usr/local/python3.11/bin/python3.11` |
|
||
| fastapi 版本找不到 | 用了 Python 3.6 | 环境管理选 3.10+ |
|
||
| 启动后只有 API 无页面 | 未构建前端 | 重新运行 `baota_init.sh` |
|
||
| 权限不够 | 运行用户与属主不一致 | `chown -R www:www` |
|
||
| `.venv/bin/uvicorn` 不存在 | 宝塔默认启动命令错误 | 改为 `bash .../baota_start.sh` |
|
||
| `start_web.bat` 报错 | Windows 脚本不能在 Linux 运行 | 用 `bash start.sh` 或 `baota_start.sh` |
|
||
| `No module named uvicorn` | 依赖未装进当前 Python | 运行 `bash backend/baota_fix.sh` |
|
||
| Playwright chrome 不存在 | 未下载 Chromium | `bash backend/baota_playwright.sh` |
|
||
|
||
---
|
||
|
||
## 访问
|
||
|
||
- 管理后台:`http://服务器IP:8000`
|
||
- 健康检查:`http://服务器IP:8000/api/health`
|
||
- 默认账号:`admin` / `admin123`(首次启动后请修改)
|
||
|
||
## 反向代理(可选)
|
||
|
||
若要用域名 + HTTPS,在宝塔添加网站后,反向代理到 `http://127.0.0.1:8000`,参考 `deploy/nginx.conf.example`。
|