69 lines
2.2 KiB
Bash
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 "========================================"
|