@echo off chcp 65001 >nul title AI 女友项目 - 启动服务 REM ========================================== REM 配置区域 REM ========================================== set PHP_PATH=D:\2_part\php-8.0.0-Win32-vs16-x64\php.exe set PHP_PORT=30100 set PYTHON_PORT=30101 REM ========================================== REM 检查 PHP REM ========================================== cls echo. echo ╔════════════════════════════════════╗ echo ║ AI 女友项目 - 启动服务 ║ echo ╚════════════════════════════════════╝ echo. echo [检查] 正在检查 PHP... if not exist "%PHP_PATH%" ( echo [错误] PHP 未找到: %PHP_PATH% echo. echo 请修改脚本中的 PHP_PATH 变量 echo. pause exit /b 1 ) "%PHP_PATH%" -v >nul 2>&1 if errorlevel 1 ( echo [错误] PHP 无法运行 pause exit /b 1 ) echo [成功] PHP 已就绪 echo. REM ========================================== REM 检查 Python REM ========================================== echo [检查] 正在检查 Python... python --version >nul 2>&1 if errorlevel 1 ( echo [错误] Python 未找到或未添加到 PATH echo. pause exit /b 1 ) echo [成功] Python 已就绪 echo. REM ========================================== REM 检查项目目录 REM ========================================== echo [检查] 正在检查项目目录... if not exist "%~dp0xunifriend_RaeeC\public" ( echo [错误] PHP 项目目录未找到 pause exit /b 1 ) if not exist "%~dp0lover" ( echo [错误] Python 项目目录未找到 pause exit /b 1 ) echo [成功] 项目目录已就绪 echo. REM ========================================== REM 获取本机 IP REM ========================================== for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /C:"IPv4"') do ( set LOCAL_IP=%%a goto :IP_FOUND ) :IP_FOUND set LOCAL_IP=%LOCAL_IP: =% REM ========================================== REM 显示启动信息 REM ========================================== cls echo. echo ╔════════════════════════════════════╗ echo ║ AI 女友项目 - 启动服务 ║ echo ╚════════════════════════════════════╝ echo. echo 准备启动以下服务: echo. echo [PHP 服务器] echo → 端口: %PHP_PORT% echo → 本地: http://127.0.0.1:%PHP_PORT% echo → 局域网: http://%LOCAL_IP%:%PHP_PORT% echo. echo [Python 后端] echo → 端口: %PYTHON_PORT% echo → 本地: http://127.0.0.1:%PYTHON_PORT% echo → 局域网: http://%LOCAL_IP%:%PYTHON_PORT% echo. echo ──────────────────────────────────── echo. echo 按任意键开始启动... pause >nul REM ========================================== REM 清理旧的服务进程 REM ========================================== echo [清理] 正在检查并清理旧的服务进程... echo. REM 查找占用 30100 端口的进程并终止 echo [清理] 检查端口 30100... for /f "tokens=5" %%a in ('netstat -ano ^| findstr :30100') do ( echo [清理] 终止进程 PID: %%a taskkill /F /PID %%a >nul 2>&1 ) REM 查找占用 30101 端口的进程并终止 echo [清理] 检查端口 30101... for /f "tokens=5" %%a in ('netstat -ano ^| findstr :30101') do ( echo [清理] 终止进程 PID: %%a taskkill /F /PID %%a >nul 2>&1 ) echo. echo [成功] 端口清理完成 echo. REM 等待端口完全释放 echo [等待] 等待端口释放... timeout /t 3 >nul echo. REM ========================================== REM 启动 PHP 服务器 REM ========================================== cls echo. echo [1/2] 启动 PHP 服务器... echo. start "PHP 服务器 - 端口 %PHP_PORT%" cmd /k "title PHP 服务器 - 端口 %PHP_PORT% && cd /d "%~dp0xunifriend_RaeeC\public" && echo [PHP 服务器] 正在启动... && echo [PHP 服务器] 端口: %PHP_PORT% && echo [PHP 服务器] 访问: http://127.0.0.1:%PHP_PORT% && echo [PHP 服务器] 测试: http://127.0.0.1:%PHP_PORT%/test_api.php && echo. && "%PHP_PATH%" -S 0.0.0.0:%PHP_PORT% router.php" echo [成功] PHP 服务器已启动 echo. REM 等待 3 秒让 PHP 完全启动 echo 等待 PHP 服务器启动... timeout /t 3 >nul REM ========================================== REM 启动 Python 后端 REM ========================================== echo [2/2] 启动 Python 后端... echo. start "Python 后端 - 端口 %PYTHON_PORT%" cmd /k "title Python 后端 - 端口 %PYTHON_PORT% && cd /d "%~dp0" && echo [Python 后端] 正在启动... && echo [Python 后端] 端口: %PYTHON_PORT% && echo [Python 后端] 访问: http://127.0.0.1:%PYTHON_PORT% && echo [Python 后端] API 文档: http://127.0.0.1:%PYTHON_PORT%/docs && echo. && python -m uvicorn lover.main:app --host 0.0.0.0 --port %PYTHON_PORT% --reload" echo [成功] Python 后端已启动 echo. REM 等待 3 秒让 Python 完全启动 echo 等待 Python 后端启动... timeout /t 3 >nul REM ========================================== REM 显示完成信息 REM ========================================== cls echo. echo ╔════════════════════════════════════╗ echo ║ 启动成功! ║ echo ╚════════════════════════════════════╝ echo. echo [PHP 服务器] ✓ 已启动 echo → http://127.0.0.1:%PHP_PORT% echo → http://127.0.0.1:%PHP_PORT%/admin echo → http://%LOCAL_IP%:%PHP_PORT% echo. echo [Python 后端] ✓ 已启动 echo → http://127.0.0.1:%PYTHON_PORT% echo → http://127.0.0.1:%PYTHON_PORT%/docs echo → http://%LOCAL_IP%:%PYTHON_PORT% echo. echo ──────────────────────────────────── echo. echo 提示: echo • 两个服务已在独立窗口中启动 echo • 可以在窗口中查看运行日志 echo • 关闭对应窗口可停止服务 echo. echo 按任意键打开浏览器... pause >nul REM ========================================== REM 打开浏览器 REM ========================================== start http://127.0.0.1:%PHP_PORT% timeout /t 1 >nul start http://127.0.0.1:%PYTHON_PORT%/docs echo. echo 浏览器已打开! echo. echo 按任意键退出(不影响服务运行)... pause >nul exit