【发布时间】:2012-04-06 14:22:27
【问题描述】:
我正在尝试让 Xdebug 远程调试工作,我使用 PHPStorm 作为我的 IDE。 我的网络服务器/代码托管在远程机器(亚马逊 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 键 '12115' 的传入连接 除了,它每次都会选择一个随机的 ide 密钥(我希望 PHPUnit 在服务器本身上设置 idekey)
我已经尝试让它工作超过 10 个小时,我尝试在 php.ini 中定义我的特定 remote_host 而不是使用 remote_connect_back 但这也不起作用。我曾尝试在 php.ini 中设置一个 idekey,但效果不佳。
有没有办法确认 Xdebug 在网络服务器端按预期工作?如何在不使用 Phpstorm 的情况下测试我的 Xdebug 设置,我不知道这是我的家庭网络和远程服务器之间的连接问题还是什么。
任何有助于缩小问题范围的指导都会很棒。
【问题讨论】:
-
我最近尝试为从本地笔记本电脑到远程服务器的端口 9000 创建一个 ssh 隧道,然后再尝试调试,但它似乎仍然不起作用(我将设置 xdebug.remote_host 更改为环回地址 127.0.0.1)。有什么建议吗?
-
我将启用 xdebug 日志记录并使用 tcpdump 查看是否正在建立连接,然后为 PhpStorm 启用调试日志记录:devnet.jetbrains.net/docs/DOC-1202。试试它是否适用于零配置方法:blog.jetbrains.com/webide/2011/02/….
标签: php xdebug remote-debugging phpstorm