1

是否可以在 Eclipse 中配置 Zend PDT 调试器,以与 Eclipse 的 Java 调试器类似的方式从浏览器操作中命中断点?即设置一个断点,启动调试器,浏览一个站点,然后当它被击中时进入一个断点。

我可以调试单个脚本和网页,但是我正在尝试调试从网页调用的脚本。我正在使用 Joomla 并希望能够在单击页面内容时遍历依赖项堆栈。

提前感谢您的任何建议..!

4

1 回答 1

7

我发现了如何做到这一点,但它很啰嗦。它使您能够像调试 Java 一样调试 PHP,因为您可以浏览您的站点,并且仅在您遇到一个断点时才进入调试器。这是Linux的配置。

安装 Zend 调试器

首先,您需要安装和配置 Zend 调试器:

  • 确保您已安装 Eclipse PDT(PHP 开发工具)。如果没有:将此存储库添加到帮助 > 安装新软件...中的源列表中:http: //download.eclipse.org/releases/helios
  • 展开 Programming Languages 包并选择 PHP Development Tools (PDT) SDK Feature。
  • 单击下一步并安装。
  • 以同样的方式安装 Zend PDT,将此存储库添加到您的源列表: http: //downloads.z​​end.com/pdt
    • 展开Zend CE Features并选择Zend Debugger Feature然后单击Next
  • 重新启动 Eclipse,然后转到Window > Preferences > PHP > Debug > Installed Debuggers以确保 Zend Debugger 已安装。
  • 配置 php.ini 以指向 ZendDebugger.so 文件。

    • 第一类

      php5 -i | grep "加载配置"

    进入终端以找到您需要编辑的正确 php.ini 文件并在文本编辑器中打开它

    • 下一个类型

      找到 ZendDebugger.so

    进入终端并将位置复制到 php5 调试器文件。

    • 将这些行添加到 php.ini 文件的底部:

      [Zend]
      Zend_extension="[您的 ZendDebugger.so 文件的路径]"
      zend_debugger.allow_hosts="127.0.0.1, [您的 IP 地址,如果需要的话]"
      zend_debugger.expose_remotely=总是
      替换从您的定位命令返回的路径和您的 IP地址。

  • 通过键入重新启动 PHP

    须藤 /etc/init.d/apache2 重启

    进入一个终端。

  • 然后键入

    php5 -m

    命令进入您的终端以确保正确配置 Zend 调试器。你会看到类似的东西:

    xmlreader
    xmlwriter
    Zend 调试器
    zip
    zlib

    [Zend 模块] Zend 调试器

    靠近垃圾场的尽头。如果您没有看到 Zend Debugger,那么请确保您编辑了正确的 php.ini 文件并确保您的 ZendDebugger.so 文件的路径有效。确保重新启动 PHP 以传播任何更改。

配置 Eclipse

接下来,您必须配置 Eclipse:

  • 首先转到Window > Preferences > PHP > PHP Executables并确保安装了最新的 PHP CLI 库并将其设置为默认值。
  • 接下来,通过转到Window > Open Perspective > Other > PHP Debug在 Eclipse 中添加 PHP Debugging 透视图。
  • 现在转到Window > Preferences > PHP > Debug并单击 Configure Project Specific Settings。
  • 选择您要调试的项目,然后单击确定。

    • 检查启用项目特定设置。
    • 这些是您需要的设置:

    PHP 调试器:Zend 调试器
    服务器:[项目的本地 URL 路径(应在 hosts 文件中配置)]
    PHP 可执行文件:5.3.x(或更高版本)

    默认基本 URL / 基本路径:/
    自动生成的基本 URL:http:/ /[项目的本地URL 路径]

    • 取消选中 Break at First Line 选项并单击 OK 关闭配置窗口,然后取消选中 PHP Debug 主页面上的相同选项。单击应用以保存设置。
  • 接下来转到Window > Preferences > PHP > PHP Servers并添加一个带有 URL 的新服务器配置

http://[项目的本地 URL 路径]

这应该与您在 dev' 中用于访问主页的主机配置中的 URL 相同。为配置命名并将其设置为默认值。单击完成和确定,然后重新启动 Eclipse。

  • 接下来转到Window > Preferences > General > Web Browser,选择 Use external web browser 并选择在调试期间要与之交互的浏览器。>注意: > 不要使用 Firefox!Zend PDT 绑定到它,如果不卸载并重新安装 firefox,您将无法将浏览器与调试器分离。到目前为止,Opera 浏览器与 Zend PDT 配合使用效果最好,因此添加它的方法如下:
  • 安装 Opera 浏览器后,再次转到 Window > Preferences > General > Web Browser settings 并选择 New 并使用以下参数:

    名称:Opera
    位置:/usr/bin/opera
    参数:%URL%

    单击确定,选择 Firefox(如果存在)并将其删除,然后检查 Opera 并单击确定。

  • 再次重新启动 Eclipse,您就可以开始调试 PHP。

使用调试器

  • 在 PHP 透视图中,打开一个 PHP 文件并从 Project 菜单或通过选择 Debug 图标旁边的向下箭头选择Debug as > PHP Web Page 。
  • 您可能会看到一个警告窗口,要求您确认调试 URL。删除基本 URL 之后的所有内容以仅保留:

    http://[项目的本地 URL 路径]

    作为 URL,然后单击确定。

  • 如果 eclipse 没有自动切换到 PHP Debug Perspective 然后手动切换到它。

  • 转到您的浏览器并导航到您在上面配置的 URL。您可能需要向前运行调试器才能解析主页。有时您需要刷新并向前运行调试器几次,然后才能完全绑定您的调试会话。
  • 您可以正常导航站点,调试器将在断点处插入您的代码。

故障排除

  • 当 PHP 调试会话开始时,有时会话在页面加载之前结束,并且浏览器中的页面保持空白。尝试在调试堆栈视图中右键单击会话并选择重新启动。
  • 当调试会话第一次启动时,确保浏览器窗口中的 URL 显示为您配置的基本 URL,即删除 Zend 附加到 URL 的任何调试器参数。从现在开始,URL 应该清晰地显示出来。
  • 为了更顺畅的调试,请在完成 PHP 开发之前从 PHP Debug 透视图中删除所有已终止的调试会话。
  • 小心避免在 PHP Debug 透视图处于焦点时关闭 eclipse,因为它需要很长时间才能关闭。
于 2011-05-30T21:05:56.103 回答