gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 22:14:20 24 4
gpt4 key购买 nike

我正在尝试让 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

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

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

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

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

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

最佳答案

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

My solution is heavily based on the one provided by Rafael Dohms in his blog post entitled: Debugging PHPUnit Tests in NetBeans with XDebug

环境

  • 集成环境:PHPStorm 6.0.2
  • 服务器:WAMP 服务器(32 位和 PHP 5.4.3)2.2E
  • X调试:2.2.2

X调试

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

The above configuration parameters go into the "php.ini" file for CLI. For the default WAMP installation, the full path to this file is: C:\wamp\bin\php\php5.4.3\php.ini

PHP Storm

首先,您必须创建一个“服务器配置”(谷歌“创建服务器配置 - JetBrains”以获取有关该主题的官方文档),并将“Xdebug”指定为“调试器”。

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

  • 服务器:上面创建的服务器
  • IDE key :PHPSTORM

现在,选择该配置并按下“调试”按钮(或“Shift + F9”)。 PHPStorm 将显示“调试”面板并显示消息:Waiting for incoming connection with ide key 'PHPSTORM'

最后,“运行”您的 PHPUnit 测试。有几种方法。其中之一是:

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

就是这样! XDebug 将从这里接管控制权。

关于php - 使用 PHPStorm 解决 PHPUnit xdebug 远程调试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com