调试技术是我们编程中不可或缺的重要部分,调试器是每个IDE环境都必备的组件。既然如此,Zend Studio的集成环境拥有一个调试器也就是理所当然的事情了,但是,该调试器在配置使用起来,其显示出来的强劲功能一定会让你惊叹不已!
事实上,Zend Studio(后面我简称“ZDE”了)的调试功能分为内部调试和远程调试。内部调试是用ZDE内置的PHP(有PHP4、PHP5两个版本)进行的代码初步调试,我们把重点放在远程调试上,因为它可以完全模拟一个真实的运行环境。
远程调试需要服务器端的组件支持,我们今天的内容就是怎么来安装这个服务器端调试环境,用到的调试组件是Zend Debugger,它是轻便而且够用的,在撰写本文时,其最新版本是5.2.14,与网络上广为流传的5.2.10版略有更新。我的服务器是windows下的apache,因此我就下载了windows版的Zend Debugger,下来的压缩包大约2.1M:
以下是压缩包内所有文件的列表:
ZendDebugger-5.2.14RC9-cygwin_nt-i386md5
ZendDebugger-5.2.14RC9-cygwin_nt-i386Inventory.xml
ZendDebugger-5.2.14RC9-cygwin_nt-i3864_3_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i3864_3_x_compZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i3864_4_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i3864_4_x_compZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i3865_0_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i3865_0_x_compZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i3865_1_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i3865_1_x_compZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i3865_2_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i3865_2_x_compZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i3865_2_x_nts_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i3865_2_x_nts_compZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i386dummy.php
ZendDebugger-5.2.14RC9-cygwin_nt-i386README.txt
1、只安装Debugger需要屏蔽掉Optimizer
解压出合适的也就是和你当前php的版本对应的Zend Debugger版本,我的php版本是5.2.5,因此我就把5_2_x_comp给拖出来了(至于5_2_x_nts_comp指的是non- tread safe,没有明白具体用途,也就不妄用了),我将5_2_x_compZendDebugger.dll移动到D:myserverZendDebugger5_2_xZendDebugger.dll,将压缩包中的dummy.php解压到web根目录,我这里的apache的 DocumentRoot设置在D:/myserver/wwwroot,就拷贝dummy.php到D:myserverwwwroot,然后修改 php.ini,
原来内容:
[Zend]
zend_extension_ts=”e:ZendZendOptimizer-3.3.0libZendExtensionManager.dll”
zend_extension_manager.optimizer_ts=”e:ZendZendOptimizer-3.3.0libOptimizer-3.3.0″
现在内容:
[Zend]
;zend_extension_ts=”e:ZendZendOptimizer-3.3.0libZendExtensionManager.dll”
;zend_extension_manager.optimizer_ts=”e:ZendZendOptimizer-3.3.0libOptimizer-3.3.0″
zend_extension_ts=D:/myserver/ZendDebugger/5_2_x/ZendDebugger.dll
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.88/24
zend_debugger.expose_remotely=always
在原来的地方前面加了;号,注释掉了两行。
ZendExtensionManager.dll——Zend扩展插件管理器
装了Optimizer原来的PHP.ini文件内容:
[Zend]
zend_extension_ts=”e:ZendZendOptimizer-3.3.0libZendExtensionManager.dll”
zend_extension_manager.optimizer_ts=”e:ZendZendOptimizer-3.3.0libOptimizer-3.3.0″
你只安装Optimizer或Debugger的时候zend_extension_ts是直接指向Optimizer或Debugger的dll的,现在这个指向ZendExtensionManager ZendExtensionManager。他的原理是先找到zend_extension_manager.optimizer_ts指向的文件夹
再去找php-5.2.x文件夹,并读取该文件夹下的ZendOptimizer.dll
所以路径结构是E:……Optimizer-3.3.0php-5.2.xZendOptimizer.dll
但在zend_extension_manager.optimizer_ts里填的是php-5.2.x的父目录
知道了原理之后就简单多了
只要把解压后的 5_2_x_compZendDebugger.dll 放在这样的路径下:E:ZendZendDebugger-5.2.10php-5.2.xZendDebugger.dll 千万不要忘记把5_2_x_comp改成php-5.2.x,我就犯了这个低级错误在php.ini加上
原来内容:
[Zend]
zend_extension_ts=”e:ZendZendOptimizer-3.3.0libZendExtensionManager.dll”
zend_extension_manager.optimizer_ts=”e:ZendZendOptimizer-3.3.0libOptimizer-3.3.0″
现在内容:
[Zend]
zend_extension_ts=”e:ZendZendOptimizer-3.3.0libZendExtensionManager.dll”
zend_extension_manager.optimizer_ts=”e:ZendZendOptimizer-3.3.0libOptimizer-3.3.0″
zend_extension_manager.debug_server_ts=”e:ZendZendDebugger-5.2.10″
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,127.0.0.1/24
3、然后重启apache,在略微的等待之后,我们输入phpinfo()查看成功与否?

啊哈,运行的很好的嘛~
下面打开zde,工具菜单->首选项,选择调试选项卡,设置调试方式为服务器,Debug Server URL填写web服务器的URL,我这里apache的端口是8080,如果是默认80端口,就可以省略了,OK,设置完成,确定之(如图)
选择 工具->检查Debug Server连接,出来的对话框选择是,我们看到了连接成功的提示
至此,我们的Debug Server就算成功安装完成了!
评论