PhpStorm与xdebug没有传入连接(nginx / php-fpm)

时间:2014-07-09 00:15:56

标签: nginx xdebug php

我想我会尝试使用nginx而不是Apache,看看它是如何工作的,我已经启动并运行了,但我不能为了生活的缘故弄清楚如何让PhpStorm捕获传入的xdebug连接。当我运行Apache时它运行得很好。

通常,你会在PhpStorm中获得一个“传入连接”窗口 - 这个窗口现在闪耀着它的缺席 - 是的;我已经阅读了StackOverflow上的每一个PhpStorm / Xdebug问题,但都没有解决我的问题。

配置: 操作系统:OSX Mavericks PhpStorm版本:7.1 Xdebug版本:2.2.5

请注意,我正在通过php-fpm运行nginx和PHP,这正在按预期工作。我已经指出了与php-fpm运行到PhpStorm相同的PHP文件,它成功地找到了Xdebug作为调试器。

由于php-fpm正在运行端口9000,就像Xdebug一样,我已将其更改为9900和9001(两者都尝试过)并确保检查我的phpinfo()以查看服务器已更新php .ini配置它,我已经检查过我已经更新了PhpStorm中的Xdebug端口。我还在PhpStorm中启用了“开始侦听调试连接”。

来自php.ini的Xdebug配置:

[xdebug]
zend_extension = /usr/local/Cellar/php55/5.5.14/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.auto_trace=0
xdebug.default_enable=1
xdebug.idekey="PHPSTORM"
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir="/tmp"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_mode=req
xdebug.remote_port=9001

如前所述 - 当我在浏览器中加载phpinfo()并且我在PhpStorm中设置了正确的端口时,会加载xdebug。

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

我无法强调其中一个评论的重要性 - " 不要忘记为xdebug设置cookie "。 我把一切都搞定了,我的调试器仍然不会因此而附加。 我可以提出一个建议是安装xdebug helper chrome扩展程序。获得后,从PhpStorm开始调试,导航到要调试的页面,然后单击" bug"打开扩展中的调试设置。地址栏中的图标。

答案 1 :(得分:0)

当我更改设置时,似乎有一件事我错过了 - 停下来听取断点然后再试一次。这似乎解决了这个问题......

答案 2 :(得分:0)

这是我的情况。

  • 确保已安装xdebug。 <?php echo (extension_loaded('xdebug') ? '' : 'non '), 'exists';
  • 确保未使用该端口,例如 nginx server:9000 <-> php-fpm:9000 ide_xdebug:9080 <-> php.ini_xdebug:9080

答案 3 :(得分:0)

配置了xdebug.remote_host=后,有时还需要添加选项xdebug.remote_connect_back=0

当PhpStorm抱怨“无法监听端口,端口9000忙”时,通常是因为其他一些应用程序使用相同的端口,例如通过docker暴露或端口设置,或者本身不在Docker中。