Zend Studio 5.5调试PHP5.2.x 以及如何解决Optimizer与Debugger兼容性问题
时间:2008-07-17
来源:互联网
记得很久以前,一直在用zend studio调试php开发程序。后来php升级到5.2后,zend debugger只到5.1.4。那时,若想要调试,只有降级php,十分郁闷。
如今zend debugger升级到5.2.14而且可以对php5.2.x版本进行调试了。
以前,可以使用随Zend Studio Server进行服务器端的调试。可是从PHP5.2开始Zend公司不再单独推出Zend Studio Server了,内部集成的环境和真实的服务器环境总又有那么多的差异,使调试工作变得复杂。
我们可以使用Zend Platform或者Zend Core进行服务器端得调试,这两个家伙都太胖了。不再单独推出Zend Studio Server,就是拜这两个家伙所赐,要么谁会去尝试Zend Platform和Zend Core呢?幸好Zend和IBM还有个PDT项目,我们可以从PDT中找到一个Zend Debugger 5.2.14(以前得Zend Studio Server的核心部分)。
下面介绍方法:
下载zend debugger 与dummy.php文件:http://downloads.zend.com/pdt/server-debugger/
根据你安装的php版本,选择相应的文件。5.2.x有2个编译好的dll,其中5_2_x_nts_comp是“non-tread safe”的,因此我使用5_2_x_comp内的dll
将ZendDebugger.dll放到<<自定义目录>>下(随便放,规矩即可。有放在php下,我放在zend下,方便查找),将dummy.php放到网站根目录下
>> 1 找到php.ini
>> 2 查找output_buffering改为Off,查找 implicit_flush 改为On
output_buffering = Off
implicit_flush = On
(“output_buffering” ; 输出缓冲区大小(字节)。建议值为4096~8192。; 输出缓冲允许你甚至在输出正文内容之后再发送HTTP头(包括cookies)。; 其代价是输出层减慢一点点速度。; 设置输出缓冲可以减少写入,有时还能减少网络数据包的发送。; 这个参数的实际收益很大程度上取决于你使用的是什么Web服务器以及什么样的脚本。
“implicit_flush”说明:; 是否要求PHP输出层在每个输出块之后自动刷新数据。; 这等效于在每个 print()、echo()、HTML块 之后自动调用flush()函数。; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。; 在CLI SAPI的执行模式下,该指令默认为 On 。)
>> 3 在文件的最后加上
[Zend]
zend_extension_ts=<<自定义目录>>/ZendDebugger.dll
zend_debugger.allow_hosts=127.0.0.1/32, 192.168.0.0/16 ---服务器地址:我的是192.168.2.19
zend_debugger.expose_remotely=always
>> 4 保存php.ini并重启服务器是设置生效
但是 如果已安装了Optimizer就会发现 php出现错误。细心的朋友就会发现zend_extension_ts有两个值,造成冲突。
Zend Optimize的配置为:
[Zend]
zend_extension_ts="d:\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="d:\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
所以路径结构是D:\......\Optimizer-3.3.0\php-5.2.x\ZendOptimizer.dll
但在zend_extension_manager.optimizer_ts里填的是php-5.2.x的父目录
在安装zend debugger的时候注意: ZendDebugger-5.2.10 文件夹下也要用php-5.2.x 有的时候从网上下载的时候文件夹名称是php-5-2-x要把他改成php-5.2.x不然找不到文件.
插上Zend Debugger:
只要把解压后的 5_2_x_comp\ZendDebugger.dll 放在这样的路径下:
D:\Zend\ZendDebugger-5.2.14\php-5.2.x\ZendDebugger.dll
在php.ini加上
zend_extension_manager.debug_server_ts="e:\Zend\ZendDebugger-5.2.14"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,127.0.0.1/24或者zend_debugger.allow_hosts=127.0.0.1
以上为配置方法,以及如何解决Optimizer与Debugger兼容性问题。
下面附上我的配置:
[Zend]
zend_extension_manager.optimizer_ts="d:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_ts="d:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.debug_server_ts="d:\Program Files\Zend\ZendDebugger-5.2.14"
zend_debugger.allow_hosts=192.168.2.19
zend_debugger.expose_remotely=always
原创内容,任意转载。我的Blog同步地址http://www.xilo.cn/blog/2008/07/16/175.html
欢迎来访!
[ 本帖最后由 xilo 于 2008-7-17 09:28 编辑 ]
如今zend debugger升级到5.2.14而且可以对php5.2.x版本进行调试了。
以前,可以使用随Zend Studio Server进行服务器端的调试。可是从PHP5.2开始Zend公司不再单独推出Zend Studio Server了,内部集成的环境和真实的服务器环境总又有那么多的差异,使调试工作变得复杂。
我们可以使用Zend Platform或者Zend Core进行服务器端得调试,这两个家伙都太胖了。不再单独推出Zend Studio Server,就是拜这两个家伙所赐,要么谁会去尝试Zend Platform和Zend Core呢?幸好Zend和IBM还有个PDT项目,我们可以从PDT中找到一个Zend Debugger 5.2.14(以前得Zend Studio Server的核心部分)。
下面介绍方法:
下载zend debugger 与dummy.php文件:http://downloads.zend.com/pdt/server-debugger/
根据你安装的php版本,选择相应的文件。5.2.x有2个编译好的dll,其中5_2_x_nts_comp是“non-tread safe”的,因此我使用5_2_x_comp内的dll
将ZendDebugger.dll放到<<自定义目录>>下(随便放,规矩即可。有放在php下,我放在zend下,方便查找),将dummy.php放到网站根目录下
>> 1 找到php.ini
>> 2 查找output_buffering改为Off,查找 implicit_flush 改为On
output_buffering = Off
implicit_flush = On
(“output_buffering” ; 输出缓冲区大小(字节)。建议值为4096~8192。; 输出缓冲允许你甚至在输出正文内容之后再发送HTTP头(包括cookies)。; 其代价是输出层减慢一点点速度。; 设置输出缓冲可以减少写入,有时还能减少网络数据包的发送。; 这个参数的实际收益很大程度上取决于你使用的是什么Web服务器以及什么样的脚本。
“implicit_flush”说明:; 是否要求PHP输出层在每个输出块之后自动刷新数据。; 这等效于在每个 print()、echo()、HTML块 之后自动调用flush()函数。; 打开这个选项对程序执行的性能有严重的影响,通常只推荐在调试时使用。; 在CLI SAPI的执行模式下,该指令默认为 On 。)
>> 3 在文件的最后加上
[Zend]
zend_extension_ts=<<自定义目录>>/ZendDebugger.dll
zend_debugger.allow_hosts=127.0.0.1/32, 192.168.0.0/16 ---服务器地址:我的是192.168.2.19
zend_debugger.expose_remotely=always
>> 4 保存php.ini并重启服务器是设置生效
但是 如果已安装了Optimizer就会发现 php出现错误。细心的朋友就会发现zend_extension_ts有两个值,造成冲突。
Zend Optimize的配置为:
[Zend]
zend_extension_ts="d:\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="d:\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
所以路径结构是D:\......\Optimizer-3.3.0\php-5.2.x\ZendOptimizer.dll
但在zend_extension_manager.optimizer_ts里填的是php-5.2.x的父目录
在安装zend debugger的时候注意: ZendDebugger-5.2.10 文件夹下也要用php-5.2.x 有的时候从网上下载的时候文件夹名称是php-5-2-x要把他改成php-5.2.x不然找不到文件.
插上Zend Debugger:
只要把解压后的 5_2_x_comp\ZendDebugger.dll 放在这样的路径下:
D:\Zend\ZendDebugger-5.2.14\php-5.2.x\ZendDebugger.dll
在php.ini加上
zend_extension_manager.debug_server_ts="e:\Zend\ZendDebugger-5.2.14"
zend_debugger.expose_remotely=allowed_hosts
zend_debugger.allow_hosts=127.0.0.1/32,127.0.0.1/24或者zend_debugger.allow_hosts=127.0.0.1
以上为配置方法,以及如何解决Optimizer与Debugger兼容性问题。
下面附上我的配置:
[Zend]
zend_extension_manager.optimizer_ts="d:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_ts="d:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
zend_extension_manager.debug_server_ts="d:\Program Files\Zend\ZendDebugger-5.2.14"
zend_debugger.allow_hosts=192.168.2.19
zend_debugger.expose_remotely=always
原创内容,任意转载。我的Blog同步地址http://www.xilo.cn/blog/2008/07/16/175.html
欢迎来访!
[ 本帖最后由 xilo 于 2008-7-17 09:28 编辑 ]
作者: xilo 发布时间: 2008-07-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28