故障排除
本节介绍了对调试器和相关文件进行故障排除时所需的过程和技术。
在配置 PHP 以使用调试器扩展时 — XDebug 或 Zend Debugger — 需要确保您编辑的是正确的 php.ini 文件并且具有正确的调试器变量zend_extension
。要查找 PHP 安装使用的 php.ini 文件的完整路径,使用 Web 目录下一个简单脚本中的phpinfo()
函数。
<?php phpinfo(); ?> |
另一种办法是输入命令php -i | grep "Loaded Conf"
,您将获得类似Loaded Configuration File => /usr/local/php5/lib/php.ini
的结果。
确定了需要编辑的 php.ini 文件之后,现在需要获得正确的zend_extension
指令进行安装。再次使用phpinfo()
或php -i
方法查找两个值:Thread Safety
和Debug Build
。表 1 可以帮助您确定使用哪一个。一个常见的错误是在需要使用zend_exention_ts
的时候使用了zend_extension
,并且这个错误很难发现。
关闭 | 关闭 |
开启 | 关闭 |
关闭 | 开启 |
开启 | 开启 |
如果调试器根本没有停止,有可能出现了以下三个问题中的一个:
- 第一个问题是没有正确设置扩展模块(参见 “使用正确的
zend_extension
指令” 查找可能的原因)。 - 如果检验扩展已经正确设置,那么可能没有对 PDT 进行设置,因此无法使用已安装的调试器。如果选择了 Zend Debugger 作为 PHP 可执行文件的调试器,但是在 php.ini 文件中设置的是 XDebug,则会得到一些意外的结果。
- 还有可能是防火墙问题。确定在 PHP Debugger 首选项中配置了防火墙允许的端口(如果安装并运行了防火墙的话)。
要把 XDebug 或 Zend Debugger 扩展二进制文件安装到其他所有扩展的位置,使用phpinfo()
或php -i
查找目录的位置。查看清单 11 中php -i
命令的示例。
... extension_dir => /usr/local/php5/lib/php/extensions/ ... |