在 CentOS 上调试 PHP,一般从 错误显示、日志、运行方式(FPM / CLI)、工具 几个方面入手。下面按常见场景说明。
找到 php.ini(位置可能是):
php --ini
# 常见路径
/etc/php.ini
/etc/php.d/*.ini
修改或确认以下配置:
display_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
systemctl restart httpd
# Nginx(一般配合 php-fpm)
systemctl restart nginx
即使不显示错误,也要看日志:
tail -f /var/log/php_errors.log
若使用 PHP-FPM:
tail -f /var/log/php-fpm/error.log
直接运行脚本看错误:
php -d display_errors=1 your_script.php
查看 PHP 配置:
php -i | grep error
yum install php-pear php-devel gcc
pecl install xdebug
或在 CentOS 8+:
dnf install php-xdebug
编辑:
/etc/php.d/15-xdebug.ini
示例(远程调试):
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.idekey=PHPSTORM
重启 PHP:
systemctl restart php-fpm
查看错误:
tail -f /var/log/nginx/error.log
确认 fastcgi 配置正确:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
tail -f /var/log/httpd/error_log
php-fpm 是否运行php-fpm 挂了display_errors=Offchown -R nginx:nginx / chmoddisplay_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_DEPRECATED
如果你能告诉我:
我可以给你更精确的调试方案。