没有从Ubuntu VirtualMachine上的XDebug到Windows主机上的PhpStorm的输入连接

没有从Ubuntu VirtualMachine上的XDebug到Windows主机上的PhpStorm的输入连接,php,xdebug,phpstorm,Php,Xdebug,Phpstorm,我的笔记本电脑上有一台Win7和一台运行Ubuntu的VMware机器 在最后一个例子中,我配置了LAMP和samba服务器,以便能够将我的项目共享到Win7(映射驱动器) 我刚刚通过包管理器安装了xdebug,并在php.ini中完成了以下配置: extension=xdebug.so [xdebug] zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so xdebug.remote_enable=1 xdebug.remote_connect

我的笔记本电脑上有一台Win7和一台运行Ubuntu的VMware机器

在最后一个例子中,我配置了LAMP和samba服务器,以便能够将我的项目共享到Win7(映射驱动器)

我刚刚通过包管理器安装了xdebug,并在php.ini中完成了以下配置:

extension=xdebug.so
[xdebug]
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.remote_host=192.168.199.2 # this is my $_SERVER['REMOTE_ADDR']
xdebug.remote_port=9055
xdebug.show_local_vars=0
xdebug.var_display_max_data=10000
xdebug.var_display_max_depth=20
xdebug.show_exception_trace=0
然后我完成了以下清单:

  • 确认使用phpinfo()安装了xdebug
  • 从中获得了一些Marklet,因此我可以轻松发送xdebug cookie
  • 在PHPStorm->Settings->PHP->Debug中,我为xdebug设置了9055端口
  • 按下PHPStorm中的“电话图标”以监听传入的xdebug连接,并设置调试键(与市场发送的键相同-“xdebug”)
  • 移动到浏览器,访问我的脚本url,使用marklet启动调试会话(确认phpinfo()中存在调试键)
  • 在我的脚本中标记了一个断点
  • 刷新的浏览器页面

但对我来说什么都不管用。

简而言之,解决我问题的方法是:

  • 启用
    xdebug.remote\u log
    (在这里我可以检查连接尝试并确定xdebug尝试连接的确切IP)-[这是关键]
  • 已删除/设置为0
    xdebug.remote\u connect\u back
    (因为它使用$\u SERVER['remote\u ADDR']覆盖远程\u主机)
  • 设置正确的
    xdebug.remote\u主机
  • 已删除
    extension=xdebug。因此
    仅使用zend_扩展加载的xdebug
因此,每次都不要忘记检查日志(如果存在!)


感谢LazyOne提供的非常有用的提示

简单地说,我的问题的解决方法是:

  • 启用
    xdebug.remote\u log
    (在这里我可以检查连接尝试并确定xdebug尝试连接的确切IP)-[这是关键]
  • 已删除/设置为0
    xdebug.remote\u connect\u back
    (因为它使用$\u SERVER['remote\u ADDR']覆盖远程\u主机)
  • 设置正确的
    xdebug.remote\u主机
  • 已删除
    extension=xdebug。因此
    仅使用zend_扩展加载的xdebug
因此,每次都不要忘记检查日志(如果存在!)


感谢LazyOne提供的非常有用的提示

1)如果您在“设置| PHP |服务器”中有任何条目,请正确配置它们(路径映射)或删除它们(建立连接时IDE将帮助您进行设置)2)您是否能够通过
telnet
从VM连接到PhpStorm(在xdebug端口上;必须激活“电话手柄”图标)?如果没有——可能在你的Windows计算机上使用了错误的IP或防火墙。我的第一个尝试也是防火墙。在遇到此类问题时——不要害怕使用——至少它会告诉您xdebug是否收到调试请求以及它尝试连接的位置(IP:port)。P.P.S.在对php.ini进行更改(取决于,但在大多数配置中是必需的)后,不要忘记重新启动Apache。我刚刚用“telnet REMOTE_ADDR PORT”进行了测试,但连接被拒绝。防火墙设置似乎允许与PHPStorm进行通信。是的,日志记录是必须的-我现在就做-谢谢你的提示!还要仔细检查PhpStorm是否侦听自定义xdebug端口(在Windows计算机上),以及它是否确实是PhpStorm(而不是另一个IDE/程序)。使用
tcpview
(GUI;从microsoft下载)或标准
netstat
)1)如果您在“设置| PHP |服务器”中有任何条目,请正确配置它们(路径映射)或删除它们(IDE将在建立连接时帮助您设置)2)您是否能够通过
telnet
从VM连接到PhpStorm(在xdebug端口上,必须激活“电话手柄”图标)?如果没有——可能在你的Windows计算机上使用了错误的IP或防火墙。我的第一个尝试也是防火墙。在遇到此类问题时——不要害怕使用——至少它会告诉您xdebug是否收到调试请求以及它尝试连接的位置(IP:port)。P.P.S.在对php.ini进行更改(取决于,但在大多数配置中是必需的)后,不要忘记重新启动Apache。我刚刚用“telnet REMOTE_ADDR PORT”进行了测试,但连接被拒绝。防火墙设置似乎允许与PHPStorm进行通信。是的,日志记录是必须的-我现在就做-谢谢你的提示!还要仔细检查PhpStorm是否侦听自定义xdebug端口(在Windows计算机上),以及它是否确实是PhpStorm(而不是另一个IDE/程序)。使用
tcpview
(GUI;从microsoft下载)或标准
netstat