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

时间:2019-12-16 22:02:24

标签: phpstorm xdebug

我有一台运行Apache和PHP7的Ubuntu服务器,安装了Xdebug,并在phpinfo()中进行了确认:

          xdebug
xdebug support    enabled
Version           2.6.0
IDE Key           PHPSTORM

我的PhpStorm在另一台Mac上运行。 Web服务器正在正常运行。如果我从PhpStorm调试PHP脚本,调试也可以正常工作。但是,如果我在PhpStorm中的代码中添加断点并从Web浏览器运行PHP,则调试器似乎无能为力。我的代码就执行了。 PhpStorm不在我设置的断点处开始调试。

如果我有意向我的PHP代码中添加了一个错误,则从输出中可以看到Xdebug在服务器上做某事,该错误将显示在xdebug-error表中。

在Ubuntu服务器上正确的PHP.ini中,我设置了正确的设置:

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上的端口扫描在PhpStorm侦听时显示cslistener,关闭时则没有任何声音

我想让我的断点正常工作,我在做什么错了?

1 个答案:

答案 0 :(得分:3)

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地址。 (tutorial (pdf)