使用MacOS Sierra,PhpStorm和Xdebug,在端口80上配置Web应用程序(不从PhpStorm运行).
浏览时localhost:80/index.php
,PhpStorm不会在断点处停止,当访问外部IP时192.168.1.2/index.php
,PhpStorm会遇到断点.
我想localhost
用于调试而不是外部IP.
有没有办法让PhpStorm与之合作localhost
?
PS Visual Studio Code适用于两种情况(因此我相信Xdebug和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
试图将xdebug.remote_host设置为127.0.0.1和localhost,行为相同.
调试localhost:80时,xdebug日志显示:
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
使用VS Code时,没有错误,而是显示xdebug I: Connected to client. :-)
设置xdebug.remote_connect_back
为0(默认值)解决了问题.
Xdebug文档:
如果启用,则忽略xdebug.remote_host设置,Xdebug将尝试连接到发出HTTP请求的客户端.它检查$ _SERVER ['HTTP_X_FORWARDED_FOR']和$ _SERVER ['REMOTE_ADDR']变量以找出要使用的IP地址.
当Xdebug尝试连接到localhost时,它使用了PhpStorm不支持的TCPv6.更改remote_connect_back
为0会导致Xdebug使用该remote_host
值,使用PhpStorm支持的TCPv4.