ubuntu上php如何调试
导读:Ubuntu上PHP调试的常用方法 1. 基础调试方法(适合快速排查简单问题) 开启错误显示:修改php.ini文件(通过php --ini命令查找路径),将display_errors = Off改为display_errors = O...
Ubuntu上PHP调试的常用方法
1. 基础调试方法(适合快速排查简单问题)
- 开启错误显示:修改
php.ini
文件(通过php --ini
命令查找路径),将display_errors = Off
改为display_errors = On
,并确保error_reporting = E_ALL
(显示所有错误)。重启Web服务器(Apache用sudo systemctl restart apache2
,Nginx+PHP-FPM用sudo systemctl restart php{ 版本号} -fpm & & sudo systemctl restart nginx
)后,错误信息会直接显示在浏览器中。 - 记录错误日志:在
php.ini
中设置log_errors = On
和error_log = /var/log/php_errors.log
(自定义日志路径),错误信息会写入该文件。使用tail -f /var/log/php_errors.log
实时查看日志,避免敏感信息泄露给用户。 - 使用
print_r()
/var_dump()
:在代码中插入print_r($variable)
或var_dump($variable)
,输出变量值或数组结构。适合快速检查变量状态,但需手动删除调试代码。 - 日志记录函数:用
error_log('调试信息', 0)
将自定义信息写入error_log
文件,适合跟踪代码执行流程。
2. 使用Xdebug进行专业调试(适合复杂项目)
Xdebug是PHP强大的调试扩展,支持断点、变量查看、堆栈跟踪等功能,需结合IDE(如PhpStorm、VSCode)使用。
(1)安装Xdebug
通过Ubuntu包管理器安装(推荐):
sudo apt-get update
sudo apt-get install php-xdebug # 根据PHP版本调整,如php8.2-xdebug
或通过PECL安装(需提前安装php-pear
和php-dev
):
sudo pecl install xdebug
(2)配置Xdebug
编辑php.ini
文件,添加以下配置(根据PHP版本调整路径):
[Xdebug]
zend_extension=xdebug.so # 自动加载扩展(包管理器安装时无需指定路径)
xdebug.mode=debug # 启用调试模式
xdebug.client_host=127.0.0.1 # 调试客户端地址(本地为127.0.0.1)
xdebug.client_port=9003 # 调试端口(默认9003,需与IDE一致)
xdebug.start_with_request=yes # 自动启动调试(或设为"trigger"通过Cookie触发)
xdebug.idekey=PHPSTORM # IDE标识(如PHPStorm、VSCode)
重启Web服务器使配置生效。
(3)IDE配置示例(以VSCode为例)
- 安装PHP Debug扩展(作者:Felix Becker)。
- 创建
.vscode/launch.json
文件,添加以下配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"stopOnEntry": false,
"log": true,
"pathMappings": {
"/var/www/html": "${
workspaceFolder}
" // 映射项目路径(服务器路径:本地路径)
}
}
]
}
- 启动调试:点击VSCode左侧“调试图标”→选择“Listen for Xdebug”→在浏览器中访问PHP页面(需携带Xdebug Cookie,可通过扩展如“Xdebug Helper”自动设置)。
(4)开始调试
- 在IDE中打开项目,在代码行号左侧点击设置断点。
- 启动调试会话(如VSCode的“Listen for Xdebug”)。
- 在浏览器中访问目标PHP页面(如
http://localhost/index.php
),代码执行到断点时会暂停。 - 使用IDE的调试工具(步进、步出、继续、查看变量、调用堆栈)排查问题。
注意事项
- 生产环境务必关闭
display_errors
(设为Off
),避免泄露敏感信息。 - Xdebug会降低PHP执行速度,调试完成后建议关闭(将
xdebug.mode
设为off
)。 - 若使用防火墙,需开放Xdebug端口(默认9003),如
sudo ufw allow 9003
。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu上php如何调试
本文地址: https://pptw.com/jishu/730924.html