在 CentOS 上让 PHP 显示/记录错误信息,通常有两种方式:修改 php.ini(推荐) 和 在代码里临时开启。下面分情况说明。
php --ini
或
php -i | grep "Loaded Configuration File"
一般路径:
/etc/php.ini/etc/php.ini 或 /etc/php-fpm.d/www.confdisplay_errors = On
display_startup_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log
PHP-FPM:
systemctl restart php-fpm
Apache(mod_php):
systemctl restart httpd
在 PHP 文件最前面加:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
如果你用的是 PHP-FPM + Nginx,单纯改 php.ini 有时不生效,还要检查:
vi /etc/php-fpm.d/www.conf
确认没有覆盖:
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
修改后重启:
systemctl restart php-fpm
tail -f /var/log/php_errors.log
或(FPM):
tail -f /var/log/php-fpm/www-error.log
生产环境不要开 display_errors,只开 log_errors:
display_errors = Off
log_errors = On
如果你愿意,可以告诉我:
我可以给你更精确的操作命令。