php.ini中Extension和zend_extension之间的区别是什么?

时间:2009-11-18 18:18:20

标签: php xdebug pecl php-internals

当我通过pecl安装Xdebug时,它将以下行添加到我的php.ini文件中。

extension="xdebug.so"

我用过的所有东西都有效。直到今天。

今天我在设置Xdebug进行交互式调试时遇到了麻烦。在我将上述内容更改为

之前,我无法正常工作
zend_extension="/usr/local/lib/php/extensions/xdebug.so"

(警告:我认为这是让我工作的原因,但我不是百分百肯定的)

这引起了我的疑问。通过extension=zend_extension加载扩展程序有何不同?

2 个答案:

答案 0 :(得分:33)

Zend_extentions属于那些构建到zend引擎本身的扩展。在zend引擎本身内置的PHP。该引擎解析,解释并执行php脚本。如果我们更改引擎,它将改变PHP的工作方式。

以下消息将描述扩展和php的zend_extension之间的主要区别

这两种扩展类型共享很多东西。两种类型之间的区别主要在于它们注册到引擎中的钩子。请记住,尽管它非常罕见,但扩展可以同时是PHP扩展和Zend扩展。 Xdebug就是一个很好的例子。

查找主模式的下图 enter image description here

For more detail refer this link

答案 1 :(得分:19)

PHP语言的核心(更像解释器,因为语言只是一个规范)是Zend开发的名为“Zend Engine”的软件(解释器,字节码编译器)。

每个与此核心混淆的模块都应安装为“zend_extension”。

然而,要解决您的问题,请忽略此尝试解释并参阅您正在配置的扩展程序的文档 - http://www.xdebug.org/docs/install