Files
dy/backend/baota_fix.sh
2026-07-23 17:56:25 +08:00

69 lines
2.2 KiB
Bash

#!/usr/bin/env bash
# 宝塔一键修复:权限 + 安装依赖 + 提示正确启动命令
# SSH 执行: bash /www/wwwroot/douyin/backend/baota_fix.sh
set -euo pipefail
BACKEND="$(cd "$(dirname "$0")" && pwd)"
ROOT="$(cd "$BACKEND/.." && pwd)"
# shellcheck source=lib/resolve_python.sh
source "$BACKEND/lib/resolve_python.sh"
echo "========================================"
echo " 宝塔环境修复"
echo "========================================"
# 权限
chown -R www:www "$ROOT" 2>/dev/null || true
chmod +x "$BACKEND/baota_start.sh" "$BACKEND/baota_init.sh" 2>/dev/null || true
chmod +x "$ROOT/install.sh" "$ROOT/start_web.sh" "$ROOT/start_backend.sh" 2>/dev/null || true
if [ -d "$BACKEND/.venv/bin" ]; then
chmod -R 755 "$BACKEND/.venv"
chmod +x "$BACKEND/.venv/bin/"* 2>/dev/null || true
fi
echo "[OK] 权限已修复"
if [ -n "${KEFU_PYTHON:-}" ] && [ -x "$KEFU_PYTHON" ]; then
PY="$KEFU_PYTHON"
if ! "$PY" -c "import ssl" 2>/dev/null; then
echo "[错误] KEFU_PYTHON 无 SSL: $KEFU_PYTHON"
exit 1
fi
else
PY="$(resolve_python "$BACKEND" "$ROOT")" || {
echo
echo "请先编译可用 Python:"
echo " AUTO_BUILD_PYTHON=1 bash $ROOT/install.sh"
exit 1
}
fi
echo "[OK] Python: $PY ($("$PY" -V 2>&1))"
if ! "$PY" -c "import ssl" 2>/dev/null; then
echo "[错误] 该 Python 无 SSL,请换环境或执行: AUTO_BUILD_PYTHON=1 $ROOT/install.sh"
exit 1
fi
echo "[1/3] pip install requirements..."
"$PY" -m pip install -U pip
"$PY" -m pip install -r "$BACKEND/requirements.txt"
echo "[OK] Python 依赖已安装"
echo "[2/3] 校验 uvicorn..."
"$PY" -c "import uvicorn, fastapi; print(' uvicorn + fastapi OK')"
echo "[3/3] 可选:完整初始化 Playwright/前端"
echo " bash $BACKEND/baota_init.sh"
echo
echo "========================================"
echo " 请在宝塔面板修改以下配置:"
echo
echo " 项目路径: $BACKEND"
echo " 启动命令: bash $BACKEND/baota_start.sh"
echo " 初始化命令: bash $BACKEND/baota_init.sh"
echo " 依赖包: $BACKEND/requirements.txt"
echo
echo " 不要用:"
echo " backend/.venv/bin/uvicorn (不存在)"
echo " start_web.bat (Windows 脚本,Linux 不能运行)"
echo "========================================"