CentOS 下 PHP 日志查看与定位
一、常见日志位置与用途
| 日志类型 | 典型路径 | 主要用途 |
|---|---|---|
| PHP-FPM 错误日志 | /var/log/php-fpm/error.log | 记录 PHP 运行时错误、FPM 进程异常等 |
| PHP-FPM 访问日志 | /var/log/php-fpm/access.log | 记录 PHP-FPM 请求(可选,取决于配置) |
| PHP-FPM 池日志 | /var/log/php-fpm/www.log(或按池名命名的日志) | 按 pool 记录请求与错误,便于隔离 |
| Apache 错误日志 | /var/log/httpd/error_log | 当 mod_php 或 FPM 与 Apache 集成时,PHP 错误常出现于此 |
| Nginx 错误日志 | /var/log/nginx/error.log | 当 PHP-FPM 与 Nginx 集成时,FPM 相关错误常出现于此 |
| Nginx 访问日志 | /var/log/nginx/access.log | 记录 HTTP 请求,配合错误日志定位问题 |
| 脚本自定义错误日志 | 由 php.ini error_log 或 ini_set(‘error_log’, ‘/path’) 指定 | 应用自行写入的 业务/调试日志 |
以上路径为 CentOS 常见默认位置,实际以你的安装与配置为准。
二、快速查看与检索命令
sudo tail -f /var/log/php-fpm/error.logsudo tail -f /var/log/php-fpm/access.logsudo tail -f /var/log/php-fpm/www.logsudo tail -f /var/log/httpd/error_log 或 sudo tail -f /var/log/nginx/error.logsudo grep -i "error" /var/log/php-fpm/error.logsudo journalctl -u php-fpm、sudo journalctl -u httpd、sudo journalctl -u nginxphp --ini,在输出中打开对应 php.ini,检查 error_log 配置项以上命令覆盖日常排查所需的主流用法。
三、定位日志路径与开启日志
php --ini 找到加载的 php.ini,检查 error_log 是否开启并指向有效路径;若脚本内使用 ini_set('error_log', '/path'),以脚本设置为准。error_log = /var/log/php-fpm/error.logaccess.log = /var/log/php-fpm/access.logsudo systemctl restart php-fpmerror_reporting = E_ALLlog_errors = Ondisplay_errors = Off(生产环境建议关闭显示,仅写入日志)sudo systemctl restart php-fpm(或 httpd/nginx,视部署而定)以上步骤可帮助你找到日志文件并确保错误被正确记录。
四、日志轮转与长期管理
/var/log/php-fpm.log {
daily
rotate 10
compress
missingok
notifempty
create 0640 root adm
postrotate
/usr/sbin/php-fpm -k >/dev/null 2>&1 || true
endscript
}
logrotate -f /etc/logrotate.d/php-fpm