【问题标题】:Debugging with xdebug, netbeans and a mounted remote server使用 xdebug、netbeans 和挂载的远程服务器进行调试
【发布时间】:2010-01-20 11:46:30
【问题描述】:
我在 Windows 机器上使用 Netbeans 进行开发,我正在编辑的文件位于远程 LAMP 服务器上。文档根目录作为驱动器号 (Y:) 安装在我的 Windows 机器上。所以,我在本地开发的 netbeans 东西,而我实际上是在本地安装上远程开发的。
当我想使用 xdebug 和 netbeans 调试 CLI PHP 脚本时,我的问题就开始了。调试基于浏览器的东西相当简单,但调试 CLI 的东西有点复杂,我不确定我知道如何让它工作。
第一个问题是,Netbeans 想知道 php5 解释器在哪里,但我不能告诉它,因为它在远程服务器上......
有人有这方面的经验吗?
谢谢,
迈克
【问题讨论】:
标签:
php
debugging
netbeans
xdebug
【解决方案1】:
当我向我的项目添加路径映射(在项目选项卡|右键单击项目|属性|运行配置|高级按钮下)时,Netbeans PHP 调试的关键突破就来了,这样我的项目就知道如何关联服务器源本地路径的代码路径(Windows 驱动器盘符路径)。
示例路径图:
/home/myusername/sourcedir 映射到 x:\sourcedir
我相信我使用与您的配置类似的配置(LAMP 服务器,Windows 机器,来自 LAMP 机器的源在 Windows 映射驱动器下本地显示)。这对我有用。
我一直在尝试将我的项目的 URL (http://server/projectroot) 作为路径映射。那不是我们所需要的。需要服务器上的实际路径(即我的主目录及以下)。
【解决方案2】:
Pada 的意思是:xdebug.remote_connect_back,而不是 xdebug.remote_enable。您必须同时设置它们,以便 Xdebug 自动连接回 Netbeans(或任何调试器)。
【解决方案3】:
xdebug.remote_host 变量指的是 xdebug 应该连接的主机。您可以使用 NetBeans 在远程服务器上调试 PHP,但需要您在远程服务器上配置 xdebug,以便它可以连接到您的开发 PC。
这是一个简单的例子:
您的带有 NetBeans 的开发 PC 位于 10.0.0.100,
并且您的远程 PHP 网络服务器位于 10.0.0.1
设置 xdebug.remote_host=10.0.0.100
现在,只要有人(或您)在远程服务器的 URL 中指定 XDEBUG_SESSION_START 参数,xdebug 就会尝试连接到 10.0.0.100。
Xdebug v2.1 有一个不错的特性:xdebug.remote_enable = 1
启用该选项将覆盖 xdebug.remote_host,然后 xdebug 将连接到 $_SERVER['REMOTE_ADDR'] (这是客户端连接的 IP 地址)。这个很棒的功能可以让你在同一台服务器上进行多次调试,因为你不能用 ini_set() 操作 xdebug.remote_host
【解决方案4】:
我不了解 Netbeans,从未使用过它,但在 Eclipse PDT 中,您也可以使用 XDebug 进行调试,“PHP 网页”和“PHP 脚本”之间存在区别。对于“PHP 网页”,您选择一个 Web 服务器(您之前配置的)而不是一个 php 解释器(就像您必须使用“PHP 脚本”一样)。
也许 Netbeans 也有同样的情况?
【解决方案5】:
xdebug.remote_autostart=1 自动远程连接。
在“Xdebug v2.1 有一个不错的功能:”。