我有一个运行Apache和PHP7的Ubuntu服务器,在phpinfo((中安装并确认了Xdebug:
xdebug
xdebug support enabled
Version 2.6.0
IDE Key PHPSTORM
我的PhpStorm运行在Mac上,另一台机器。Web 服务器正在正常运行。如果我从 PhpStorm 调试 PHP 脚本也可以正常工作。但是,如果我在 PhpStorm 中的代码中添加断点并从 Web 浏览器运行 PHP,调试器似乎不会执行任何操作。我的代码只是执行。PhpStorm 不会在我设置的断点处开始调试。
如果我故意在我的PHP代码中添加一个错误,我可以通过输出看到Xdebug正在服务器上做某事,错误会显示在xdebug-error表中。
在正确的PHP中.ini在Ubuntu服务器上,我设置了正确的设置:
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.remote_host=192.168.0.130
所以:
- PhpStorm 正在侦听 PHP 调试连接,或者至少启用了"侦听调试连接">
- 两者都配置为侦听/通信端口 9000
- CLI 解释器已正确设置为远程 Ubuntu 服务器
- 路径映射是正确的(在我的情况下:
/volumes/internet
->/var/www
( - [编辑] 9000 上的端口扫描显示 cslistener 当 PhpStorm 正在侦听时,关闭时什么都没有
我很想让我的断点工作,我做错了什么?
xdebug.remote_host
不应该设置为运行XDebug的计算机的IP,它应该设置为你运行PHPStorm的计算机!
另一种选择是将xdebug.remote_connect_back
设置为true
.启用此功能后,将忽略xdebug.remote_host
设置,Xdebug 将尝试连接到发出 HTTP 请求的客户端。它检查$_SERVER['HTTP_X_FORWARDED_FOR']
和$_SERVER['REMOTE_ADDR']
变量,以找出要使用的 IP 地址。(参见XDEBUG手册(