Symfony6生产环境出现500错误但无日志生成求助
Symfony6生产环境500错误无日志排查方案
- 检查PHP错误日志:Symfony日志依赖PHP错误记录机制,生产环境可能PHP日志未启用或路径配置错误。执行
php -i | grep error_log获取PHP错误日志路径,查看该文件是否有相关报错信息。 - 核对Symfony Monolog配置:打开
config/packages/prod/monolog.yaml,确认prod环境已启用file日志处理器,路径配置为%kernel.logs_dir%/%kernel.environment%.log,且日志级别level设置为error或更低(临时排查可设为debug)。 - 验证日志目录权限细节:即便按官方文档设置权限,仍可能存在权限继承问题。执行
ls -ld /var/www/myapp/var/log和ls -l /var/www/myapp/var/log,确认目录及文件的所有者/组与web服务器进程(如www-data)一致,且具备读写权限。可临时执行chown -R www-data:www-data /var/www/myapp/var/log后重新测试。 - 检查Apache虚拟主机日志配置:确认虚拟主机配置中的
ErrorLog和CustomLog路径无拼写错误,同时确保Apache进程拥有该日志文件的写入权限。修改配置后重启Apache:systemctl restart apache2。 - 临时开启调试模式定位:在
.env文件中临时设置APP_DEBUG=1(排查完成后立即改回0),此时页面会显示详细错误堆栈,同时观察日志是否生成。 - 排查安全模块限制:若服务器启用SELinux,执行
getsebool -a | grep httpd,确认httpd_can_write_www_content已开启,未开启则执行setsebool -P httpd_can_write_www_content 1;若使用AppArmor,检查相关配置是否阻止Apache写入日志目录。
内容的提问来源于stack exchange,提问作者mysterty
相关产品推荐
相关产品推荐

