仅当使用外部IP地址时,PhpStorm + Xdebug才会触发断点

时间:2017-01-02 07:56:28

标签: phpstorm xdebug

使用MacOS Sierra,PhpStorm和Xdebug,在端口80上配置W​​eb应用程序(不从PhpStorm运行)。

当浏览到192.168.1.2/index.php时,PhpStorm不会在断点处停止,当访问外部IP localhost时,PhpStorm会遇到断点。

我想使用localhost进行调试而不是外部IP。

有没有办法让PhpStorm与[xdebug] zend_extension = /usr/local/Cellar/php56/5.6.29_5/lib/php/extensions/debug-non-zts-20131226/xdebug.so xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_port=9000 xdebug.remote_autostart=1 xdebug.remote_connect_back=1 xdebug.idekey=vagrant xdebug.remote_host=0.0.0.0 一起使用?

P.S。 Visual Studio Code适用于两种情况(因此我相信Xdebug和PhpStorm运行良好)。

Log opened at 2017-01-03 14:06:36
I: Checking remote connect back address.
I: Checking header 'HTTP_X_FORWARDED_FOR'.
I: Checking header 'REMOTE_ADDR'.
I: Remote address found, connecting to ::1:9000.
W: Creating socket for '::1:9000', poll success, but error: Operation now in progress (19).
E: Could not connect to client. :-(
Log closed at 2017-01-03 14:06:36

尝试将 xdebug.remote_host 设置为 127.0.0.1 localhost ,行为相同。

调试localhost:80时,xdebug log show:

I: Connected to client. :-)

使用VS Code时,没有错误,xdebug显示realloc

1 个答案:

答案 0 :(得分:9)

FS设置为0(默认值)解决了问题。

Xdebug documentation

  

如果启用,则忽略xdebug.remote_host设置,Xdebug将设置   尝试连接到发出HTTP请求的客户端。它会检查   $ _SERVER ['HTTP_X_FORWARDED_FOR']和$ _SERVER ['REMOTE_ADDR']变量   找出要使用的IP地址。

当Xdebug尝试连接到localhost时,它使用了PhpStorm不支持​​的TCPv6。 将xdebug.remote_connect_back更改为0会导致Xdebug使用remote_connect_back值,使用PhpStorm支持的TCPv4。