在 CentOS 上调试 PHP 的实用方案
一 环境准备与定位配置文件
sudo yum install epel-release -y,如需新版 PHP 可用 sudo yum-config-manager --enable remi-phpXX 再安装对应版本。php -i | grep "Loaded Configuration File",常见路径为 /etc/php.ini 或 /etc/php.d/*.ini。二 使用 Xdebug 进行断点调试(推荐)
sudo yum install php-xdebug),若仓库版本较旧或需特定版本,可用 PECL 安装:sudo pecl install xdebug 并在 php.ini 中加载 zend_extension=xdebug.so。[Xdebug]
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.start_with_request=yes
xdebug.idekey=PHPSTORM
说明:
xdebug.mode=debug 启用调试模式;xdebug.client_host 为 IDE 所在主机(本机调试填 127.0.0.1,远程调试填 IDE 所在机器的可达 IP);xdebug.client_port 默认 9003(与 IDE 保持一致);xdebug.start_with_request=yes 便于直接触发调试;xdebug.idekey 便于与 IDE 进行握手匹配。sudo systemctl restart httpdsudo systemctl restart nginx && sudo systemctl restart php-fpmxdebug.client_host 设为 IDE 所在机器的 内网/公网 IP,确保调试端口(默认 9003)在防火墙与云安全组放行,并保持 IDE 监听该端口。三 不依赖调试器的快速排错
error_reporting=E_ALL
display_errors=On
log_errors=On
error_log=/var/log/php_errors.log
重启服务后,查看 /var/log/php_errors.log 或 PHP-FPM 日志 获取详细错误堆栈与上下文。var_dump($var); exit; 或 print_r($var); 快速查看变量结构与值;上线前务必移除或注释。四 常见问题与排查清单
ss -lntp | grep 9003 检查 9003 是否被其他进程占用;如冲突,修改 xdebug.client_port 并同步 IDE 设置。php -v 与 php -m | grep Xdebug 验证扩展是否加载成功。