zend debugger 的安装
我使用的是zend studio 7.1
需用zend的调试功能必先额外安装zend debugger。
下面说zend debugger的安装:
事实上,Zend Studio(后面我简称“ZDE”了)的调试功能分为内部调试和远程调试。内部调试是用ZDE内置的PHP(有4、5两个版本)进行的代码初步调试,我们把重点放在远程调试上,因为它可以完全模拟一个真实的运行环境。
远程调试需要服务器端的组件支持,我们今天的内容就是怎么来安装这个服务器端调试环境,用到的调试组件是Zend Debugger,它是轻便而且够用的,在撰写本文时,其最新版本是5.2.14,与网络上广为流传的5.2.10版略有更新。我的服务器是windows下的apache,因此我就下载了windows版的Zend Debugger,下来的压缩包大约2.1M,有个readme.txt,我觉得有必要看哈子:
Zend Debugger installation instructions
—————————————
1. Locate ZendDebugger.so or ZendDebugger.dll file that is compiled for the correct version of PHP (4.3.x, 4.4.x, 5.0.x, 5.1.x, 5.2.x) in the appropriate directory.
2. Add the following line to the php.ini file:
Linux and Mac OS X: zend_extension=/full/path/to/ZendDebugger.so
Windows: zend_extension_ts=/full/path/to/ZendDebugger.dll
Windows non-tread safe: zend_extension=/full/path/to/ZendDebugger.dll
(*) the windows non-thread safe is used only with Zend Core 2.0
3. Add the following lines to the php.ini file:
zend_debugger.allow_hosts=<ip_addresses>
zend_debugger.expose_remotely=always
4. Place dummy.php file in the document root directory.
5. Restart web server.
这里已经非常详细的讲了安装方法了,那我就以我晦涩的语言再描述一遍吧
ZendDebugger-5.2.14RC9-cygwin_nt-i386\md5
ZendDebugger-5.2.14RC9-cygwin_nt-i386\Inventory.xml
ZendDebugger-5.2.14RC9-cygwin_nt-i386\4_3_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i386\4_3_x_comp\ZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i386\4_4_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i386\4_4_x_comp\ZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i386\5_0_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i386\5_0_x_comp\ZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i386\5_1_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i386\5_1_x_comp\ZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i386\5_2_x_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i386\5_2_x_comp\ZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i386\5_2_x_nts_comp
ZendDebugger-5.2.14RC9-cygwin_nt-i386\5_2_x_nts_comp\ZendDebugger.dll
ZendDebugger-5.2.14RC9-cygwin_nt-i386\dummy.php
ZendDebugger-5.2.14RC9-cygwin_nt-i386\README.txt
解压出合适的也就是和你当前php的版本对应的Zend Debugger版本,我的php版本是5.2.5,因此我就把5_2_x_comp给拖出来了(至于5_2_x_nts_comp指的是non-tread safe,没有明白具体用途,也就不妄用了),我将5_2_x_comp\ZendDebugger.dll移动到D:\myserver\ZendDebugger\5_2_x\ZendDebugger.dll,将压缩包中的dummy.php解压到web根目录,我这里的apache的DocumentRoot设置在D:/myserver/wwwroot,就拷贝dummy.php到D:\myserver\wwwroot,然后修改php.ini,加入了这些内容:
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.88/24
zend_debugger.expose_remotely=always
注意:
有些人可能已经装了zendoptimize。那么这里就不能这么配置了。而应该如下设置:
[Zend]
zend_extension_ts="e:\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="e:\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_manager.debug_server_ts="e:\Zend\ZendDebugger-5.2.10"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,127.0.0.1/24
重启后就可以调试了。
详情请见:http://www.mihua.net/node/441m.htm
2、Debugger与Optimizer共存
ZendExtensionManager.dll——Zend扩展插件管理器
装了Optimizer原来的PHP.ini文件内容:
[Zend]
zend_extension_ts="e:\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="e:\Zend\ZendOptimizer-3.3.0\lib\Optimizer-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.0\php-5.2.x\ZendOptimizer.dll
但在zend_extension_manager.optimizer_ts里填的是php-5.2.x的父目录
知道了原理之后就简单多了
只要把解压后的 5_2_x_comp\ZendDebugger.dll 放在这样的路径下:E:\Zend\ZendDebugger-5.2.10\php-5.2.x\ZendDebugger.dll 千万不要忘记把5_2_x_comp改成php-5.2.x,我就犯了这个低级错误在php.ini加上
原来内容:
[Zend]
zend_extension_ts="e:\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="e:\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
现在内容:
[Zend]
zend_extension_ts="e:\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="e:\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_manager.debug_server_ts="e:\Zend\ZendDebugger-5.2.10"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,127.0.0.1/24
附上我的配置:
php-5.2.x下面放置zenddebugger.dll。然后php-5.2.x在这个目录下:D:\DedeAMPZ\Program\zenddebugger
[Zend]
zend_extension_manager.optimizer_ts="D:/DedeAMPZ\Program\lib\Optimizer-3.3.0"
zend_extension_ts="D:/DedeAMPZ\Program\lib\ZendExtensionManager.dll"
zend_extension_manager.debug_server_ts="D:\DedeAMPZ\Program\zenddebugger"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,127.0.0.1/24
重启apache。
在phpinfo中此时应该可以看到zend debugger的相应信息。
再在zend studio中打上断点,然后在相应的页面右键,debug as "php web page"
就会看到断住了
浙公网安备 33010602011771号