在 CentOS 上定位 PHP 错误,一般从 PHP 错误日志、Web 服务器日志、PHP 配置 三个方面入手。下面按实战步骤说明。
php --ini
常见路径:
/etc/php.ini/etc/php.d/*.ini查看关键配置:
grep -E "error_reporting|display_errors|log_errors|error_log" /etc/php.ini
重点关注:
error_reporting = E_ALL
display_errors = Off
log_errors = On
error_log = /var/log/php/php_errors.log
✅ 如果 error_log 有值,那就是 PHP 错误日志位置
❌ 如果是空,PHP 会把错误交给 Web 服务器
/var/log/php-fpm/error.log
/var/log/php/php_errors.log
查看:
tail -f /var/log/php-fpm/error.log
错误一般在 Apache 日志:
/var/log/httpd/error_log
查看:
tail -f /var/log/httpd/error_log
Nginx 错误日志:
/var/log/nginx/error.log
PHP 错误仍看:
/var/log/php-fpm/error.log
⚠️ 仅用于测试环境
vi /etc/php.ini
修改:
display_errors = On
error_reporting = E_ALL
重启服务:
# PHP-FPM
systemctl restart php-fpm
# Apache
systemctl restart httpd
# Nginx
systemctl restart nginx
tail -f /var/log/php-fpm/error.log
grep -i "error" /var/log/php-fpm/error.log
grep -i "fatal" /var/log/php-fpm/error.log
grep "2026-01-21 10:" /var/log/php-fpm/error.log
error_log("调试信息:" . $var);
或写文件:
file_put_contents('/tmp/php_debug.log', print_r($data, true), FILE_APPEND);
| 日志内容 | 原因 |
|---|---|
| PHP Fatal error | 致命错误(类/函数不存在) |
| PHP Warning | 不致命但有问题 |
| PHP Notice | 变量未定义等 |
| Permission denied | 文件/目录权限问题 |
| Allowed memory size | 内存不足 |
ps aux | grep php-fpm
确认运行用户(如 apache / nginx)
日志目录权限:
chown -R nginx:nginx /var/log/php
chmod 755 /var/log/php
如果你愿意,可以告诉我:
我可以直接帮你定位 ✅