断点不起作用,MAC 上的 PhpStorm,在 Ubuntu 服务器上运行的 PHP



我有一个运行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手册(

最新更新