使用PHPStorm解决PHPUnit xdebug远程调试问题

4 php remote-debugging xdebug phpstorm

我试图让Xdebug远程调试工作,我使用PHPStorm作为我的IDE.我的网络服务器/代码托管在远程机器上(amazon ec2).

我的远程服务器上的php.ini中有以下行(PHP CLI,因为我正在进行PHPUnit调试)

zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
Run Code Online (Sandbox Code Playgroud)

由于我是从家庭网络编程的,因此我在个人路由器上打开了端口9000.我将PHPStorm的xdebug服务器设置为指向端口80上的远程服务器,使用Xdebug作为调试器.

现在,当我尝试从PHPStorm调试PHPUnit测试时,它只是说'等待与ide键'12115的传入连接'除外,它每次都会选择一个随机的ide键(我希望PHPUnit在服务器上设置idekey)本身)

我一直试图让这个工作超过10个小时,我已经尝试在php.ini中定义我的特定remote_host而不是使用remote_connect_back,但这也没有用.我试过在php.ini中设置一个idekey,但是效果不好.

反正是否确认Xdebug在Web服务器端按预期工作?如何在不使用Phpstorm的情况下测试我的Xdebug设置,我不知道它是我的家庭网络和远程服务器之间的连接问题还是什么.

任何有助于缩小问题范围的指导都会很棒.

小智 5

我知道这个问题有点陈旧,但由于我遇到了同样的问题并且刚刚找到了解决方案,我决定在这里发帖给任何感兴趣的人.

我的解决方案主要基于Rafael Dohms在他的博客文章中提供的解决方案:使用XDebug调试NetBeans中的PHPUnit测试

环境

  • IDE:PHPStorm 6.0.2
  • 服务器:WAMP服务器(32位和PHP 5.4.3)2.2E
  • XDebug:2.2.2

的XDebug

zend_extension=c:\wamp\bin\php\php5.4.3\ext\php_xdebug-2.2.2-5.4-vc9.dll
xdebug.extended_info=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_log=c:/wamp/tmp/xdebug/xdebug_remote.log
Run Code Online (Sandbox Code Playgroud)

以上配置参数进入CLI的"php.ini"文件.对于默认的WAMP安装,此文件的完整路径为:C:\ wamp\bin\php\php5.4.3\php.ini

PHPStorm

首先,您必须创建一个"服务器配置"(谷歌"为主题的官方文档创建一个服务器配置 - JetBrains"),将"Xdebug"指定为"调试器".

然后,创建一个新的"PHP远程调试配置"(谷歌"为主题的官方文档创建和编辑运行/调试配置 - JetBrains")在"配置"部分下指定以下值:

  • 服务器:上面创建的服务器
  • Ide键:PHPSTORM

现在,选择该配置并按"Debug"按钮(或"Shift + F9").PHPStorm将显示​​"Debug"面板并显示消息:等待与ide键'PHPSTORM'的传入连接

最后,"运行"你的PHPUnit测试.有几种方法.其中之一是:

  • 右键单击PHPUnit测试所在文件的名称.
  • 选择"运行文件名 "

而已!XDebug将从此处获得控制权.