在 CentOS 上排查 PHP 问题,核心就是看日志 + 定位配置。下面按“从哪看 → 怎么看 → 常见坑”给你一套实用方法。
不同方式,日志位置完全不同:
php -v
which php
常见三种:
php --ini
查看:
log_errors = On
error_log = /var/log/php/php_errors.log
display_errors = Off ; 生产环境应为 Off
如果没有 error_log,错误可能写到:
/var/log/messages# 找 fpm 配置
php-fpm -t
通常在这里:
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
关键配置:
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_value[log_errors] = On
查看日志:
tail -f /var/log/php-fpm/www-error.log
# Nginx
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
# Apache
tail -f /var/log/httpd/error_log
tail -f /var/log/php-fpm/www-error.log
tail -f /var/log/nginx/error.log
然后刷新页面 / 触发请求,马上能看到报错。
在 php.ini:
display_errors = On
error_reporting = E_ALL
改完重启:
systemctl restart php-fpm
⚠️ 生产环境调试完一定要关掉
| 问题 | 日志表现 |
|---|---|
| 500 错误 | PHP Fatal error |
| 白屏 | 无输出 + error_log 有错 |
| 超时 | execution time exceeded |
| 内存不足 | Allowed memory size exhausted |
| 权限问题 | Permission denied |
| 找不到类 | Class not found |
如果你愿意,可以直接把:
我可以帮你精准定位是哪一行配置或代码出的问题。