• 让调试利器zend debugger与zend Optimizer共存,和谐


    这是一篇纠正性文字,将很久以前在《服务器调试——Zend Debugger 的安装教程》中提到的zend debugger安装方法更新一下,因为那种方法不能够与zend Optimizer共存,即运行zend debugger就不能运行zend Optimizer,或者反之。后来,参考了网络上的资料以及xampp的启发,终于找到了完美的解决方案,其关键点就在于Zend Extension Manager,它被包含在zend Optimizer的发行包中,本文依然以windows为例,来看看怎么利用这个Zend Extension Manager来实现多个zend扩展的共存,和谐的运行。

    首先我们安装Zend Optimizer v3.3.3 For Windows-i386,这是目前的最新版,安装过程中的参数选择不再赘述,都很简单。我把它装成了这样:

    [Zend]
    zend_extension_manager.optimizer_ts="D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
    zend_extension_ts="D:\myserver\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"

    看,我们获得了ZendExtensionManager.dll,原来的问题就是zend_extension_ts只能指向一个扩展,现在我们将其指向ZendExtensionManager.dl,交由ZendExtensionManager托管扩展,此时,在phpinfo中已经看到zend Optimizer安装成功了,我们应该看看D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0这个目录下的情况,因为这对我们后面安装zend debugger有帮助。

    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-4.2.0
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-4.2.x
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-4.3.x
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-4.4.x
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-5.0.x
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-5.1.x
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-5.2.x
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-4.2.0\ZendOptimizer.dll
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-4.2.x\ZendOptimizer.dll
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-4.3.x\ZendOptimizer.dll
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-4.4.x\ZendOptimizer.dll
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-5.0.x\ZendOptimizer.dll
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-5.1.x\ZendOptimizer.dll
    D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0\php-5.2.x\ZendOptimizer.dll

    可以看到Optimizer-3.3.0\php-5.2.x形如这样的很有规律的命名,而不幸的是,zend debugger的发行包并没有按照这个规则命名,我们需要逐个的修改它们,后来,我将它们改成这样子:

    D:\myserver\zendDebugger\php-5.0.x
    D:\myserver\zendDebugger\php-5.1.x
    D:\myserver\zendDebugger\php-5.2.x
    D:\myserver\zendDebugger\php-5.0.x\ZendDebugger.dll
    D:\myserver\zendDebugger\php-5.1.x\ZendDebugger.dll
    D:\myserver\zendDebugger\php-5.2.x\ZendDebugger.dll

    是的,必须要这样,否则zend debugger是没有办法加载成功的。然后我们继续修改php.ini文件,内容变成下面这样了:

    [Zend]
    zend_extension_manager.optimizer_ts="D:\myserver\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
    zend_extension_ts="D:\myserver\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
    zend_extension_manager.debug_server_ts="D:\myserver\zendDebugger"
    zend_debugger.expose_remotely=allowed_hosts
    zend_debugger.allow_hosts=127.0.0.1/32,192.168.16.36/24
    zend_debugger.allow_tunnel=127.0.0.1/32

    上面的参数需要根据你的实际情况修改一番,然后我们重启amp环境,不出意外的话,你应该看到类似下面的信息:

    zend-extension-manager

    这就表示安装成功了,此时zend Optimizer和zend debugger正在和谐的运行着,好了,我的啰嗦写完了。但我这根本算不了什么,你猜怎么着,有牛人将xdebug也整合了进去,简直令人发指,无以复加,请看:http://www.akii.org/2009-07/zend-debugger-and-xdebug-and-zend-optimizer-approach-to-coexist/。祝你围观愉快

  • 相关阅读:
    Python Generators(生成器)--yield
    [带你飞]一小时带你学会Python
    [Effective C++ --032]确定你的public继承塑模出is-a
    [Effective C++ --031]将文件间的编译依存关系降至最低
    [Effective C++ --030]透彻了解inlining的里里外外
    [Effective C++ --029]为“异常安全”而努力是值得的
    [Effective C++ --028]避免返回handles指向对象内部成分
    unity 获取本机ip地址
    unity 局域网游戏开发知识点
    unity 中函数调用的顺序
  • 原文地址:https://www.cnblogs.com/zhouwenwu/p/2424125.html
Copyright © 2020-2023  润新知