# 提示词大师项目 - 服务器启动和停止指南 ## 🚀 **启动服务器** ### 方法一:使用完整命令启动 ```bash # 进入项目目录 cd /home/renjianbo/aitsc # 激活conda环境并启动服务 eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)" && conda activate myenv && gunicorn -c gunicorn.conf.py run_dev:app ``` ### 方法二:分步启动 ```bash # 1. 进入项目目录 cd /home/renjianbo/aitsc # 2. 激活conda环境 eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)" conda activate myenv # 3. 启动Gunicorn服务 gunicorn -c gunicorn.conf.py run_dev:app ``` ### 方法三:后台启动 ```bash # 后台启动服务 nohup gunicorn -c gunicorn.conf.py run_dev:app > logs/gunicorn.log 2>&1 & ``` ## 🛑 **停止服务器** ### 方法一:使用PID文件停止 ```bash # 停止服务(如果存在PID文件) kill -TERM $(cat logs/gunicorn.pid) ``` ### 方法二:强制停止所有Gunicorn进程 ```bash # 强制停止所有gunicorn进程 pkill -9 -f gunicorn ``` ### 方法三:停止特定项目进程 ```bash # 停止run_dev:app相关进程 pkill -f "run_dev:app" ``` ## 🔍 **检查服务状态** ### 检查进程状态 ```bash # 查看Gunicorn进程 ps aux | grep "run_dev:app" | grep -v grep # 查看所有Gunicorn进程 ps aux | grep gunicorn | grep -v grep ``` ### 检查端口状态 ```bash # 检查5002端口是否被监听 ss -tlnp | grep :5002 # 或者使用netstat netstat -tlnp | grep :5002 ``` ### 检查服务响应 ```bash # 测试服务是否正常响应 curl -s http://localhost:5002/ | head -10 # 测试特定页面 curl -s -o /dev/null -w "%{http_code}" http://localhost:5002/admin/analytics_admin/ ``` ## 📊 **查看日志** ### 查看错误日志 ```bash # 查看最新的错误日志 tail -f logs/gunicorn_error.log # 查看应用日志 tail -f logs/app.log ``` ### 查看访问日志 ```bash # 查看访问日志 tail -f logs/gunicorn_access.log ``` ## 📦 **首次部署或更新后(含新功能时)** 若启用了「智能周报生成」「旅行攻略规划」等需要新表的功能,需先执行数据库迁移再启动服务: ```bash cd /home/renjianbo/aitsc eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)" && conda activate myenv FLASK_APP=run_dev.py flask db upgrade ``` 执行成功后再按上文方式启动服务;否则访问周报/旅行攻略页面可能报 500 或“表不存在”类错误。 ## 🔧 **故障排除** ### 无法访问此页面 / 连接被拒绝 (ERR_CONNECTION_REFUSED) 访问 `http://101.43.95.130:5002` 出现「拒绝连接」时,请**在 101.43.95.130 这台服务器上**依次检查: 1. **服务是否在本机运行** ```bash ps aux | grep gunicorn ss -tlnp | grep 5002 ``` 若无进程或无 5002 监听,说明服务未启动,请在本机按上文「启动服务器」步骤启动。 2. **防火墙 / 安全组是否放行 5002** - 若使用云服务器(如腾讯云),在控制台为该实例的**安全组**添加入站规则:放行 **TCP 5002**。 - 若本机有 firewalld:`sudo firewall-cmd --add-port=5002/tcp --permanent && sudo firewall-cmd --reload` - 若使用 iptables,需放行 5002 端口。 3. **确认用服务器 IP 访问** - 在其他电脑/手机访问时,必须用 **http://101.43.95.130:5002/**,不能写 localhost。 ### 清理和重启 ```bash # 1. 停止所有相关进程 pkill -f gunicorn # 2. 删除PID文件 rm -f logs/gunicorn.pid # 3. 重新启动 eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)" && conda activate myenv && gunicorn -c gunicorn.conf.py run_dev:app ``` ### 检查依赖 ```bash # 检查Python环境 which python python --version # 检查已安装的包 pip list | grep -E "(flask|gunicorn|openai)" ``` ## 🌐 **访问地址** 启动成功后,可以访问以下地址: - **本机浏览器**:使用 `http://localhost:5002/` 或 `http://127.0.0.1:5002/` - **其他电脑/手机访问**:必须使用**服务器 IP**,不能使用 localhost(localhost 指向访问者本机,会连接失败) - **主页**:`http://101.43.95.130:5002/` - **饭菜规划**:`http://101.43.95.130:5002/meal-planning` - **古诗词解析**:`http://101.43.95.130:5002/poetry/` - **古诗词示例**:`http://101.43.95.130:5002/poetry/examples` - **后台管理**:`http://101.43.95.130:5002/admin` - **数据分析**:`http://101.43.95.130:5002/admin/analytics_admin/` ## ✅ **启动成功的标志** 看到以下信息表示启动成功: - `[INFO] 应用启动` - `[INFO] 工作进程 X 已启动` - `[INFO] 工作进程 X 初始化完成` - 端口5002开始监听 ## 📝 **项目信息** - **项目名称**:提示词大师 - **功能描述**:智能生成高质量提示词,提升您的工作效率 - **技术栈**:Python 3.12 + Flask + Gunicorn + MySQL - **端口**:5002 - **环境**:conda myenv - **配置文件**:gunicorn.conf.py - **启动文件**:run_dev.py ## 🚨 **注意事项** 1. 确保conda环境已正确激活 2. 确保所有依赖包已安装 3. 确保数据库连接正常 4. 确保5002端口未被占用 5. 定期检查日志文件大小,避免磁盘空间不足 --- *最后更新:2025-09-14* *维护人员:系统管理员*