【发布时间】:2017-12-26 18:33:53
【问题描述】:
问题
在执行 PHP 网页调试配置时,PHP 会跳过我的 Web 应用程序中的所有断点。 xdebug 日志中没有记录任何内容。调试器输出“Waiting for incoming connection with ide key 'XYZ'”,其中 XYZ 是为该会话生成的 IDE 密钥。
异常
如果我手动放置一个“xdebug_break();” PHP中的语句,PHP在断点处停止;但是,我看不到作用域变量,并且 xdebug 日志被记录下来。
我在跑步
- IntelliJ IDEA Ultimate 2017.3.1 Build #IU-173.3942.27
- XAMPP Windows 5.6.32
- PHP 5.6
- Xdebug 2.5.3-5.6
XAMPP 虚拟主机设置
<VirtualHost 127.0.0.2:80>
DocumentRoot "C:/dev/testphp"
ServerName 127.0.0.2
ErrorLog "C:\dev\testphp\logs\apache.error.log"
CustomLog "C:\dev\testphp\logs\apache.custom.log" common
</VirtualHost>
Xdebug PHP.ini 设置
[Xdebug]
zend_extension=C:/xampp/php/php_xdebug-2.5.3-5.6-vc11.dll
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_host=127.0.0.2
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_mode=jit
xdebug.remote_log=C:/xampp/apache/logs/xdebug.log
; xdebug.profiler_enable=1
; xdebug.profiler_enable_trigger=1
; xdebug.profiler_output_dir=C:/xampp/apache/logs/logs/profiler
我尝试了以下方法:
- 检查断点已启用(已启用)。
- 使用 Zero-configuration Web Application Debugging with Xdebug and PhpStorm 从头开始设置 xDebug。出现同样的问题。
- 检查我的防火墙。 PHPStorm、IDEA 和 Apache 都设置为允许。
- Web 服务器上经过验证的调试器配置(一切都签出)
- 使用基本 PHP 文件创建了一个新项目,以测试是否特定于项目(出现相同问题)
- 从头开始重新安装 XAMPP(万岁 Mary。出现同样的问题)。
- 我也尝试研究过这个问题,但以上似乎是标准解决方案。
编辑 1:
很奇怪。重新启动后它现在可以工作了。我使用了这些选项并确定可能的罪魁祸首是 xdebug.remote_mode=jit
我不是 100% 有信心(我记得上周五玩过那个选项);但是,当我打开它时,它确实触发了我报告的上述错误。
注意:这可能不是错误,而是预期的行为,而且我自己还没有完全理解即时模式的工作原理。
编辑 2:
更新:奇怪的事情正在发生。 它适用于我的测试项目,但不适用于我的主项目。
测试项目 当我尝试“#4 Created a new project with a basic PHP file to test if project specific (same issue)”时,我创建了一个 index.php 文件来打印斐波那契数列。 Xdebug 捕获了我在那个文件中设置的断点
主要项目: 当我在 PHP 中为页面加载后触发的 ajax 调用放置断点时,断点将被忽略。 当我在 PHP 中为一个页面放置一个断点时,因为它在我的控制器中构造了它,断点被忽略 --怪事-- 如果我将两个项目作为单独的窗口打开,则测试项目运行良好;但是,如果我对主项目执行调试配置,则弹出的页面位于“等待 127.0.0.1”,这对应于 apache 虚拟主机中主项目的 IP 地址。相比之下,127.0.0.2对应的是测试项目。同时测试项目窗口打开调试器并在主项目的 index.php 文件的第一行暂停并警告该文件在项目之外。
编辑 2.1:
已修复。
Xdebug 端口不匹配。
PHP INI 为 xdebug 指定了端口 9000。项目的 xdebug 设置为测试项目指定端口 9000,为主项目指定端口 9001。关闭测试项目并将主项目更新为 9000 修复了此问题。
【问题讨论】:
标签: php apache debugging intellij-idea