Appearance
监控与故障排查
按照“进程 → HTTP → WebSocket → 数据库 → 浏览器”的顺序排查,可避免只看前端而遗漏服务端状态。
运行时文件
| 文件或目录 | 用途 |
|---|---|
runtime/logs/webman.log | 应用日志。 |
runtime/logs/workerman.log | Workerman 运行日志。 |
runtime/logs/stdout.log | 进程标准输出。 |
runtime/webman.pid | 进程 PID。 |
runtime/webman.status | status 命令生成的状态信息。 |
runtime/sessions/ | 文件 Session 默认存储位置。 |
常见问题
| 现象 | 先检查 | 处理方向 |
|---|---|---|
| HTTP 页面无法访问 | php start.php status、反向代理和 webman.log | 确认 Webman HTTP 进程、监听端口与网关转发。 |
| 客服接口返回“请登录” | 浏览器 Cookie、token 请求头/查询参数和 Session 存储 | 重新登录;确认多实例环境共享了正确的 Session 存储。 |
| 访客接口返回 Token 错误 | Authorization: Bearer 头、Token 过期状态及是否已访问 /visitor | 由服务端重新签发 Token;不要在请求中伪造身份字段。 |
| 页面能打开但收不到实时消息 | setting.ws_address、Socket 进程、代理 Upgrade 配置和订阅频道 | 检查 Socket 服务是否运行,客户端重连后重新订阅。 |
| 重连后消息缺失或重复 | 本地 mid 去重逻辑和消息历史补拉 | 以 mid 去重,并从消息列表接口补拉。 |
| 上传失败 | public/upload/ 权限、PHP 上传限制和接口返回的大小限制 | 校验运行账户写权限、文件大小和文件类型。 |
| 数据库连接失败 | config/think-orm.php、PDO 扩展与数据库网络 | 检查驱动、主机、端口、账号密码和数据库服务状态。 |
推荐排查命令
bash
php start.php status
php start.php restart查看日志时优先定位同一时间段内的 HTTP 请求、应用异常和 Socket 连接状态。不要把完整 Cookie、访客 Token、密码或推送密钥复制到工单和公开日志。
WebSocket 最小检查
- 调用访客或客服初始化接口,确认
setting.ws_address为预期的公网地址。 - 在浏览器网络面板确认 WebSocket 握手成功。
- 确认客户端订阅初始化数据给出的频道;访客端不要自行拼接频道名。
- 发送一条测试消息,确认 HTTP 写入成功且双方收到
message.created。 - 主动断开并重连,确认客户端重新订阅并按
mid补拉消息。
提交故障信息
为便于复现,故障报告应包含:发生时间(含时区)、访问页面、请求路径、HTTP 状态或业务 code、脱敏后的日志片段、浏览器与网络环境、以及是否能在重连后恢复。不得附带密码、完整 Token 或 Session Cookie。