trae里php错误日志在哪看_trae查php日志路径法【技巧】

7次阅读

traephp错误日志默认路径为/var/log/php_Errors.log,由php.ini中error_log指令指定,需确认log_errors=On且执行trae php restart生效。

trae里php错误日志在哪看_trae查php日志路径法【技巧】

trae 中 PHP 错误日志默认位置是 /var/log/php_errors.log

trae 是基于 ubuntu 的轻量级 PHP 开发环境,它把 PHP-FPM 和 nginx 封装成一键服务。默认配置下,PHP 错误日志不走系统 syslog,也不混在 Nginx access/error 日志里,而是单独写入 /var/log/php_errors.log。这个路径由 php.ini 中的 error_log 指令控制,trae 的预设值就是这个绝对路径。

确认当前生效的 error_log 路径用 php -i | grep error_log

实际项目中可能改过配置,或用了多版本 PHP(比如通过 trae php use 8.2 切换),必须以运行时为准。执行命令:

php -i | grep error_log

输出类似:

error_log => /var/log/php_errors.log => /var/log/php_errors.log

注意两点:

立即学习PHP免费学习笔记(深入)”;

  • 左边是编译/ini 设置的值,右边是最终生效值;若右边为空,说明日志被禁用(log_errors = Off
  • 如果看到 error_log => syslog,那日志其实进了 journald,得用 journalctl -u php8.2-fpm 查(trae 默认不用这个)
  • 部分用户手动改过 php.ini 把路径指向了 /tmp/php-error.log 这类临时位置,重启 trae php restart 才生效

tail -f 实时看日志比翻文件更有效

开发调试时,错误往往一闪而过,等你打开文件再找,最新几条已经刷走了。直接监听:

sudo tail -f /var/log/php_errors.log

需要 sudo 是因为 trae 默认把日志权限设为 640,属主是 www-data。如果你不想每次输密码,可临时加用户到 www-data 组:

sudo usermod -aG www-data $USER

然后重新登录终端。另外注意:

  • tail -f 不会自动识别日志轮转(logrotate),如果看到日志突然“断掉”,大概率是被 logrotate 重命名或清空了
  • trae 默认没开 log_errors = On 在所有 SAPI 下都生效——CLI 脚本出错不会写进这个文件,得单独配 php -d log_errors=On -d error_log=/path script.php

找不到 /var/log/php_errors.log?先检查 log_errors 是否开启

最常踩的坑不是路径错,而是根本没开记录。检查三处:

  • php -i | grep log_errors —— 看是否为 On
  • grep -r "log_errors" /etc/php/*/fpm/php.ini —— trae 多版本共存时,要确认对应版本的 FPM 配置
  • sudo systemctl status php8.2-fpm —— 若显示 failed,FPM 没跑起来,自然没日志

修改后必须执行 trae php restart,只 reload 不行,因为 trae 的 FPM 启动脚本不支持平滑 reload 日志配置。

日志路径本身不难查,难的是确认它正在被写入——很多问题卡在 log_errors = Off 或配置没加载对版本,而不是路径藏得多深。

text=ZqhQzanResources