以前每当一个 ZendStudio 的新版本发布时都会同时发布一个新版的 ZendStudioServer 组件,这个组件可以让我们很方便地进行远程调试。但是自从 Zend 发布了 ZendPlatform 以后他们就不再更新 ZendStudioServer 组件了。这就导致我们只能远程调试 PHP 5.1.x 的环境,而不能调试 PHP 5.2.x。要想调试 PHP 5.2.x 只能装一个庞大的 ZendPlatform。:(
因此我一直在找一个“轻量级”的解决方案。近日在逛 Zend.com 时发现了一个好东西:ZendDebugger-5.2.3-Windows-i386.zip,直觉告诉我,这就是我想要的。果不其然,今天试验成功!
下面就说一说我的试验步骤:
到这里下载ZendDebugger-5.2.3-Windows-i386.zip,然后将其解压到某一目录,比如:C:\Program Files\Zend,这就会在该目录里面新建一个 ZendDebugger-5.2.3-Windows-i386 子目录,里面有 4_3_x_comp、4_4_x_comp、5_2_x_comp 等目录,将这些 x_y_z_comp 分别改为 php-x.y.z(比如将目录 5_2_x_comp 改为 php-5.2.x);
确保已经加载了 Zend Extension Manager,如果安装了 Zend Optimizer 则会自动安装 Zend Extension Manager,若没有安装请先安装 Zend Optimizer 。或者你可以把 Zend Optimizer 中 ZendExtensionManager.dll 给提取出来,然后手工在 php.ini 中添加一行:
zend_extension_ts=”C:\Program Files\Zend\ZendOptimizer\ZendExtensionManager.dll”
其中 ZendExtensionManager.dll 的位置请根据你的实际情况填写;
在 Web Server 的 php.ini 添加下面几行:
zend_extension_manager.debug_server_ts=”C:\Program Files\Zend\ZendDebugger-5.2.3-Windows-i386″
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.0/24,192.168.1.0/24
zend_debugger.allow_tunnel=127.0.0.1/32
zend_extension_manager.debug_server_ts 的值请根据你的实际情况填写,就是 php-x.y.z 的父目录。
把 ZendDebugger-5.2.3-Windows-i386 目录下的 dummy.php 复制到你的 Web 站点根目录。
重启你的 Web Server,OK!
简单总结一下:Zend Studio 的远程调试是由 ZendStudioServer 组件(ZendDebuger.dll)提供的。本质上这是一个 Zend 扩展,因此你只要能把这个 Zend 扩展启用就可以了。只是 Zend 公司出品的 Zend 扩展只能由那个 Zend Extension Manager 负责加载,所以我们才需要做一些额外的步骤,否则只需简单地加一行 zend_extension_ts = xxxxxx 而已。