IntelliJ IDEA:配置Zend调试器

2019-03-20 17:22 更新

配置Zend调试器

此功能仅在Ultimate版本中受支持。
以下内容仅在安装并启用PHP插件时有效!

下载并安装Zend Debugger

  1. 下载与您的操作系统对应的Zend Debugger软件包
  2. 在与您的PHP版本(例如4.3.x,4.4.x,5.0.x,5.1.x,5.2.x,5.3.x,5.4.x)对应的目录中找到 ZendDebugger.so(Unix)或 ZendDebugger.dll(Windows)文件 。
  3. 将文件复制到Web服务器可访问的位置中的Web服务器。

启用Zend Debugger与PHP解释器的集成

  1. 在编辑器中打开活动文件php.ini:
    1. 在“设置/首选项”对话框(Ctrl+Alt+S)中,单击“语言和框架”下的“PHP”。
    2. 在打开的PHP页面上,单击“CLI解释器”字段旁边的browseButton
    3. 在打开的“CLI解释器”对话框中,“配置文件”只读字段显示活动php.ini文件的路径。单击“在编辑器中打开”。
  2. 找到或创建该[Zend]部分。
  3. 要加载Zend Debugger扩展,请根据您的操作系统在该[Zend]部分中添加以下行之一:
    • 对于Linux和macOS:
      zend_extension=<full_path_to_ZendDebugger.so>
    • 对于Windows:
      zend_extension_ts=<full_path_to_ZendDebugger.dll>
    • 对于非线性安全的Windows:
      zend_extension=<full_path_to_ZendDebugger.dll>
      非线性安全的Windows二进制文件仅用于Zend Core 2.0。
  4. 要从IntelliJ IDEA启用对Zend Debugger的访问,请添加以下行: 
    zend_extension=<full_path_to_zend_debugger_extension>
    zend_debugger.allow_hosts=127.0.0.1
    zend_debugger.expose_remotely=allowed_host
    zend_debugger.tunnel_min_port=<any integer value above 1024> 
    zend_debugger.tunnel_max_port=<any integer value below 65535>
    
    zend_debugger.allow_hosts参数的值是连接到服务器调试器的计算机的IP。它可以是以逗号分隔的 Ip 列表, 格式为 x. x. x. x (例如, 192.168.0.6)。
    提示:对于线程安全的Windows二进制文件,请使用zend_extension_ts参数而不是zend_extension。
  5. 重新启动Web服务器。
  6. 要检查Zend Debugger是否已正确安装和配置,请创建一个包含以下内容的文件:
    <?php
        phpinfo(); 
    ?>
    
    在浏览器中打开与该文件对应的页面。输出应包含Zend Debugger部分。

将Zend Debugger与IntelliJ IDEA集成

  1. 按下Ctrl+Alt+S或选择:文件|设置(对于Windows和Linux),或IntelliJ IDEA|首选项(对于macOS)以打开“设置/首选项”对话框,然后单击“语言和框架”下的PHP。 
  2. 检查与所选PHP解释器关联的Zend Debugger安装:
    1. 在PHP页面上,从CLI解释器列表中选择相关的PHP安装,然后单击该字段旁边的“浏览( browseButton)”。该列表显示了IntelliJ IDEA中可用的所有PHP安装,请参阅配置本地PHP解释器配置远程PHP解释器
    2. 打开的“CLI解释器”对话框显示以下内容:
      • 所选PHP安装的版本。
      • 与所选PHP安装(Xdebug或Zend Debugger)关联的调试引擎的名称和版本。如果未配置调试器,则IntelliJ IDEA显示Debugger: Not installed。
  3. 定义Zend Debugger行为。单击PHP节点下的Debug。在打开的Debug页面上,在Zend Debugger区域中指定以下设置:
    • 在“调试端口”文本框中,指定IntelliJ IDEA的端口以通过该工具进行通信。通过zend_debugger.tunnel_min_port和zend_debugger.tunnel_max_port在php.ini文件中指定的tunnel中键入端口号。
    • 要让IntelliJ IDEA通过“调试端口”文本框中指定的端口接受来自Zend Debugger引擎的任何传入连接,请选中“可以接受外部连接”复选框。
    • 要在浏览器中使用调试器工具栏,请在“设置广播端口”文本框中指定将调试器设置传递到浏览器的端口。
    • 使用“自动检测IDE IP”复选框可以启用和禁用热IP地址的自动检测。选中此复选框后,IntelliJ IDEA将通过debug_host参数检测要发送到Zend Debugger的所有主机IP地址。所有检测到的IP地址都列在右侧的文本框中。使用Vagrant,VirtualBox或其他虚拟化工具时,自动检测IP地址非常有用。
      清除复选框以阻止主机IP地址的自动检测,并在文本框中明确指定所需的地址。
  4. 在“外部连接”区域中,指定IntelliJ IDEA如何处理从主机接收的连接以及未注册为部署服务器配置的端口。
    • 通过未注册的服务器配置忽略外部连接:选中此复选框可使IntelliJ IDEA忽略从主机和未注册为部署服务器配置的端口收到的连接。选中此复选框后,IntelliJ IDEA不会尝试自动创建部署服务器配置。
    • 在PHP脚本的第一行中断: 选中此复选框可在调试器与IntelliJ IDEA建立连接后立即停止(而不是在达到第一个断点之前自动运行)。或者在主菜单上打开“运行|在PHP脚本的第一行中断”选项。
    • 最大同时连接数:使用此选值框限制可以同时处理的外部连接数。
  5. 若要阻止来自 Z-Ray 系统的请求,如果它们过于频繁地调用 IntelliJ IDEA 调试器而打扰了您, 请选中 "忽略 Z-Ray 系统请求" 复选框。

配置Zend Debugger以在On-Demand模式下使用

IntelliJ IDEA 2016.2及更高版本支持On-Demand模式,您可以在其中禁用Zend Debugger以进行全局PHP安装,并且只有在调试命令行脚本或需要代码覆盖率报告时才能按需自动启用它。这使您的命令行脚本(包括Composer和单元测试)运行得更快。

  1. 禁用Zend Debugger用于命令行脚本:
    1. 在“设置/首选项”对话框(Ctrl+Alt+S)中,选择“语言和框架”下的“PHP”。
    2. 从PHP可执行文件列表中,选择相关的PHP解释器并单击它旁边的 browseButton。在打开的“CLI解释器”对话框中,单击“配置文件:<path to php.ini>”文件旁边的“在编辑器中打开”链接。关闭所有对话框并切换到已打开php.ini文件的选项卡。 
    3. 在该php.ini文件中,找到[Zend],并通过在前置词中添加;来注释以下行:
      • 对于Linux和macOS:
        zend_extension=<full_path_to_ZendDebugger.so>
      • 对于Windows: 
        zend_extension_ts=<full_path_to_ZendDebugger.dll>
      • 对于非线性安全的Windows:
        zend_extension=<full_path_to_ZendDebugger.dll>
        非线性安全的Windows二进制文件仅用于Zend Core 2.0。
    4. 打开“CLI解释器”对话框,然后单击PHP可执行文件字段旁边的 图标动作刷新svg。IntelliJ IDEA通知您未安装调试器:
      ps_interpreters_debugger_not_installed.png
  2. 要在必要时启用IntelliJ IDEA以激活Zend Debugger,请在“调试器扩展”文本框的“附加”区域中指定它的路径。手动键入路径,或单击 browseButton,并在打开的对话框中选择位置。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号