Appearance
问题现象
新安装或初始化 EBAOZU 系统后,访问后台管理页面或调用后台接口时,浏览器弹出 500 Internal Server Error、服务器内部错误 或空白报错页面。
快速排查步骤
开启调试模式查看具体异常信息
- 打开项目根目录下的
.env文件。 - 将
APP_DEBUG设置为true:iniAPP_DEBUG = true - 保存文件并重启 Swoole 守护进程:bash
supervisorctl restart ebaozu_v4 - 再次刷新报错接口或后台页面,即可直接在页面/网络请求响应中看到详细的 PHP 异常堆栈信息。
常见根因与解决方案
安装/配置后未重启 Swoole 守护进程
- 原因:Swoole 是常驻内存框架,修改了数据库连接信息、环境变量
.env或更新了文件后,内存中的旧进程依然在使用旧的连接,导致数据库或缓存连接异常。 - 解决:在 Supervisor 管理器中点击【重启】。
数据库连接异常或未导入初始 SQL
- 表现:接口返回
{"status":400,"msg":"数据获取失败"}(HTTP 200,统一异常处理已屏蔽 SQL 原文);服务端日志(runtime/log/)中可见PDOException: Access denied或Table 'ebaozu.eb_system_admin' doesn't exist。 - 解决:
- 检查
.env中的数据库用户名、密码与库名是否与实际创建的一致。 - 确认已成功导入系统初始化 SQL 脚本。
- 检查
Redis 未安装或连接密码错误
- 表现:
RedisException: Connection refused或NOAUTH Authentication required。 - 解决:
- 确认服务器已安装 Redis 并已启动。
- 核对
.env中的REDIS_PASSWORD,若 Redis 没有设置密码,.env中必须留空。
目录写入权限不足
- 表现:
Permission denied,无法在runtime/目录下生成缓存或日志文件。 - 解决:bash
chown -R www:www /www/wwwroot/你的项目目录 chmod -R 777 /www/wwwroot/你的项目目录/runtime
排查完成后的收尾工作
排查并解决错误后,必须将 .env 中的调试模式关闭以保障生产环境安全与性能:
ini
APP_DEBUG = false并再次重启 Swoole 守护进程。