温馨提示×

怎么监控CentOS PHP日志

小樊
43
2026-08-30 08:00:03
栏目: 编程语言

CentOS 上监控 PHP 日志,主要取决于你是用的 PHP-FPM 还是 Apache + mod_php,以及日志存放位置。下面按常见场景给你一份实用指南。


一、确认 PHP 日志位置

1️⃣ PHP-FPM(最常见,Nginx / 部分 Apache)

php-fpm -i | grep "error_log"

或查看配置文件:

grep -R "error_log" /etc/php-fpm.d/
grep -R "error_log" /etc/php.ini

常见路径:

/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log

2️⃣ Apache + mod_php

PHP 错误通常写入 Apache 错误日志:

/var/log/httpd/error_log

3️⃣ PHP 应用自身日志

如 Laravel、ThinkPHP:

/var/www/html/storage/logs/
/var/www/html/runtime/log/

二、实时查看 PHP 日志(最常用)

✅ 实时跟踪日志

tail -f /var/log/php-fpm/error.log

多个日志一起看:

tail -f /var/log/php-fpm/error.log /var/log/httpd/error_log

三、过滤/搜索 PHP 错误

查找 Fatal / Warning

grep -i "fatal\|error\|warning" /var/log/php-fpm/error.log

按时间查看

grep "2026-01-21" /var/log/php-fpm/error.log

四、使用 systemd 查看 PHP-FPM 日志

journalctl -u php-fpm -f

如果 PHP-FPM 启动失败、重启异常,非常有用。


五、开启 PHP 错误日志(如果没开)

编辑 php.ini:

vi /etc/php.ini

确保以下配置存在:

display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log
error_reporting = E_ALL

重启 PHP-FPM:

systemctl restart php-fpm

六、自动化监控 PHP 日志(生产推荐)

1️⃣ 使用 logrotate 防止日志过大

/etc/logrotate.d/php-fpm

示例:

/var/log/php-fpm/*.log {
    daily
    rotate 7
    missingok
    notifempty
    compress
    delaycompress
    postrotate
        systemctl reload php-fpm > /dev/null 2>&1 || true
    endscript
}

2️⃣ 使用 rsyslog / journald

将 PHP 日志统一收集到系统日志。


3️⃣ 使用监控工具(进阶)

工具 作用
Prometheus + Grafana 日志告警
ELK (Elasticsearch + Logstash + Kibana) 企业级日志分析
Fail2ban 监控异常访问
Zabbix PHP 错误告警

七、常见 PHP 错误 & 排查建议

错误 可能原因
PHP Fatal error 代码错误、扩展缺失
Allowed memory size exhausted 内存不足
Maximum execution time 超时
Permission denied 目录权限

八、快速排查命令合集(建议收藏)

# 查看 PHP 日志
tail -f /var/log/php-fpm/error.log

# 查看 Apache 日志
tail -f /var/log/httpd/error_log

# 查看 PHP-FPM 状态
systemctl status php-fpm

# 查看 PHP 错误是否开启
php -i | grep log_errors

如果你愿意,可以告诉我:

  • CentOS 版本
  • PHP 运行方式(FPM / Apache)
  • 是否生产环境

我可以帮你定制一套 PHP 日志监控 + 告警方案

0