PHP在CentOS中的调试方法
开启PHP错误报告并将错误记录到文件,是最基础的调试方式,适合快速定位语法或运行时错误。
php.ini
中全局配置(推荐后者):ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); // 报告所有错误
或在php.ini
中设置:display_errors = On log_errors = On error_log = /var/log/php_errors.log error_reporting = E_ALL
tail
命令实时查看日志内容(需root权限):tail -f /var/log/php_errors.log
Xdebug是PHP专业调试工具,支持断点、变量监控、调用栈分析等功能,需配合IDE(如PhpStorm、VSCode)使用。
sudo yum install epel-release sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm # CentOS 7 sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm # CentOS 8+
sudo yum-config-manager --enable remi-php74
sudo yum install php-xdebug
php.ini
(或创建/etc/php.d/xdebug.ini
),添加以下配置:[xdebug] zend_extension=xdebug.so # 加载Xdebug扩展 xdebug.mode=debug # 启用调试模式 xdebug.client_host=127.0.0.1 # IDE所在主机IP xdebug.client_port=9003 # 调试端口(默认9003,需与IDE一致) xdebug.start_with_request=yes # 自动启动调试(可选:trigger/yes) xdebug.idekey=PHPSTORM # IDE标识(如PHPSTORM、VSCode)
sudo systemctl restart httpd
sudo systemctl restart nginx && sudo systemctl restart php-fpm
info.php
文件(<?php phpinfo(); ?>
),访问该文件,若页面包含“Xdebug” section则表示安装成功。File > Settings > Languages & Frameworks > PHP > Servers
,点击“+”添加服务器: 127.0.0.1
(或服务器IP)80
(HTTP)或443
(HTTPS)/home/user/project
对应服务器/var/www/html
)。Shift+F9
)启动调试会话,访问应用即可触发断点。使用var_dump()
和print_r()
快速输出变量值,适合临时检查数据结构或简单调试。
$array = ['foo' => 'bar', 'baz' => 'qux']; var_dump($array); // 输出变量类型和值 print_r($array); // 输出易读的数组结构
/var/log/php_errors.log
有写入权限(sudo chown apache:apache /var/log/php_errors.log
,Apache用户可能为www-data
)。9003
被占用,可修改php.ini
中的client_port
为其他端口(如9004
),并同步更新IDE配置。display_errors
(设为Off
),避免敏感信息泄露,仅通过日志记录错误。