使用xdebug (nginx / php-fpm)的PhpStorm没有传入连接



我想我会尝试使用nginx而不是Apache,看看它是如何工作的,我正在运行,但我不能为我的生活着想,弄清楚如何使PhpStorm捕获传入的xdebug连接。当我运行Apache时,它工作得很好。

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

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

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

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

Xdebug config from php.ini:

[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被加载。

谢谢你的帮助。

我再怎么强调这句话的重要性也不为过——"不要忘记为xdebug设置cookie "。我的一切都是正确的,我的调试器仍然不会因为这个而附加。我可以做的一个建议是安装xdebug helper chrome扩展。一旦你有了它,从PhpStorm开始调试,导航到你想要调试的页面,并通过点击地址栏中的"bug"图标打开扩展中的调试设置。

当我更改设置时,似乎有一件事我错过了-停止侦听断点,然后再次尝试。

我的情况如下。

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

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

当PhpStorm抱怨'Can't listen to port, port 9000 is busy '时,通常是因为其他应用程序使用了相同的端口,例如通过docker expose或端口设置或自身不在docker中。

最新更新