Linxu的php让Zend Debugger与Zend Optimizer共存

By SuperTaoer | 三月 15, 2009
Under: 程序 技术 周边
Views: 9,853 views

Linxu的php让Zend Debugger与Zend Optimizer共存。

目前情况是这样的,在本地编辑php文件,在虚拟机上安装有php、mysql、apache2等服务器环境,
所以打算用eclipse在本地建立两个项目,先建立一个ZendFramework的项目,把ZF框架的放在项目中,然后再建立一个实际的项目,
这个项目需要包含ZF项目,OK,开始。

要想在linux上调试,首先需要下载linux的Zend Debugger,
下载地址是: http://downloads.zend.com/pdt/server-debugger/
我下载的版本是: ZendDebugger-5.2.15-linux-glibc23-i386.tar.gz

好了,在服务器上解压缩,对应你的php版本,选择相应文件夹中的ZendDebugger.so,我这里选择的是: 5_2_x_comp/ZendDebugger.so
把这个文件放在你的Zend的扩展目录中,例如: /usr/local/Zend/lib/ZendDebugger.so

然后修改你的php.ini文件,在其中加入下面三行:
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendDebugger.so
zend_debugger.allow_hosts=127.0.0.1/32,192.168.0.7/32
zend_debugger.expose_remotely=always

其中第一行要替换成你实际的ZendDebugger.so存在的地址,第二行的192.168.0.7也要替换成你运行eclipse这台本地机器的ip

好了重启apache。

这个时候儿会出现问题,什么问题呢?因为我安装了Zend Optimizer,这样重启服务器后再apache2的error_log中报告了如下错误:
[Zend Optimizer] Zend Debugger must be loaded after Zend Optimizer in Unknown on line 0

把这段dd复制到google上搜索,发现如果是二者并存的话,需要修改配置,在网上按照N多范例修改总是不成功,于是自己静下心来,一个一个的看,终于,配置如下:

zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer-3.3.3
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.3
zend_optimizer.version=3.3.3

zend_extension_manager.debug_server_ts=/usr/local/Zend/lib/Debugger-5.2.15
zend_extension_manager.debug_server=/usr/local/Zend/lib/Debugger-5.2.15
zend_debugger.allow_hosts=127.0.0.1/32,192.168.0.7/32
zend_debugger.expose_remotely=always

其中最重要的一行是: zend_extension_manager.debug_server=/usr/local/Zend/lib/Debugger-5.2.15
网上大多的都没有写这一行,所以在phpinfo中总是看不到Zend Debugger的加载,加上这一行就好了,其实一直是这一行在捣鬼。
还有一个方法可以测试你的Zend Debugger是否加载:

if(function_exists(‘debugger_connect’))  echo “OK”;
else echo “Zend Debugger Not Load”;

把上面的代码编辑成一个php文件,执行以下儿就可以了。

zend_debugger.allow_hosts=127.0.0.1/32,192.168.0.7/32 这一行用逗号儿分割的多个ip列表儿,就是允许从哪个远程地址进行在服务器上的Debugger调试。

差..好文!! (还没评价)
Loading ... Loading ...

Leave a Message

No Messages

No Messages

RSS feed for comments on this post. TrackBack URI

Leave a Message