php中的扩展和zend_extension有什么区别.ini?

2022-08-30 11:43:01

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

extension="xdebug.so"

我用过的一切都有效。直到今天。

今天,我在设置Xdebug进行交互式调试时遇到问题。我无法让任何东西工作,直到我把上面的内容更改为

zend_extension="/usr/local/lib/php/extensions/xdebug.so"

(警告:我认为这就是我工作的原因,但我不是100%确定)

这在我脑海中提出了一个问题。通过加载扩展程序与加载扩展程序有什么区别?extension=zend_extension


答案 1

Zend_extentions是内置于Zend引擎本身中的扩展。该引擎解析,解释和执行PHP脚本。更改引擎会改变 PHP 的工作方式。

包含的图表将描述扩展和zend_extension之间的主要区别。

这两种类型的扩展共享许多功能。这两种类型之间的区别主要在于它们注册到引擎中的钩子。尽管它非常不常见,但扩展既可以是PHP扩展,也可以是Zend扩展。Xdebug就是一个很好的例子。

查找主架构的下图Comparison of extensions and zend_extensions

有关更多详细信息,请参阅此链接


答案 2

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

每个与这个核心混杂在一起的模块都应该作为“zend_extension”进行安装。

然而,为了解决你的问题,请忽略这种解释尝试,并查阅你正在配置的扩展的文档 - http://www.xdebug.org/docs/install


推荐