我非常肯定这是一个xdebug问题,而不是PHPStorm问题但是要事先清楚我在本地使用PHPStorm来调试驻留在远程服务器上的PHP代码。我在服务器上设置了xdebug,并在服务器上使用php.ini中的以下配置:
zend_extension=/home/httpd/php_extensions/xdebug-2.1.4/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_connect_back=1
xdebug.idekey=PHPSTORM-XDEBUG
我已将PHPStorm设置为本地调试器。我在Chrome中使用XDebug Helper或在Firefox中使用简单的Xdebug来初始化xdebug(无论我使用哪种方式,都会出现问题)。一般来说,调试工作正常。我可以设置断点,逐步执行代码,查看变量等。
当某些请求从未收到服务器的响应时,问题就出现了。服务器永远不会响应,我已经使用Charles Web Debugging Proxy验证了这一点。这始终发生在相同的特定请求上,无论是否设置了断点,都会发生这种情况。没有收到响应的请求都是相似的 - 它们调用一个PHP脚本来缩小和连接多个JavaScript文件并回显结果。
要进行故障排除,我已经通过将其添加到php.ini来启用xdebug日志记录:
xdebug.remote_log=/home/httpd/xdebug.log
当我将日志中的php文件名作为这些有问题的请求的端点时,我得到0结果(除非我明确地向该端点添加了断点)。当我向该端点添加断点(minify.php)时,我可以在PHPStorm中逐步完成它,它似乎通过回显缩小和连接的JS代码来完成代码 - 但响应仍未发送从我的本地机器知道的服务器。
知道这里发生了什么吗?这真的妨碍了我使用xdebug的能力。感谢。
答案 0 :(得分:0)
Cookie可能不会传播到这些请求。我建议您查看是否可以设置xdebug.remote_autostart
,然后是否尝试连接?
答案 1 :(得分:0)
感谢您的回复。这不是问题,但它让我进一步挖掘。事实证明,当php调用exit()时,xdebug会崩溃。使用最新版本候选项修复了此处指定的问题:
http://bugs.xdebug.org/view.php?id=815
谢谢!