当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《仅当使用外部IP地址时,PhpStorm+Xdebug才会触发断点》经验,为你挑选了1个好方法。

使用MacOS Sierra,PhpStorm和Xdebug,在端口80上配置W​​eb应用程序(不从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.1localhost,行为相同.

调试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. :-)



1> Ofiris..:

设置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.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有