当我通过pecl
安装Xdebug时,它将以下行添加到我的php.ini文件中。
extension="xdebug.so"
我用过的所有东西都有效。直到今天。
今天我在设置Xdebug进行交互式调试时遇到了麻烦。在我将上述内容更改为
之前,我无法正常工作zend_extension="/usr/local/lib/php/extensions/xdebug.so"
(警告:我认为这是让我工作的原因,但我不是百分百肯定的)
这引起了我的疑问。通过extension=
与zend_extension
加载扩展程序有何不同?
答案 0 :(得分:33)
Zend_extentions属于那些构建到zend引擎本身的扩展。在zend引擎本身内置的PHP。该引擎解析,解释并执行php脚本。如果我们更改引擎,它将改变PHP的工作方式。
以下消息将描述扩展和php的zend_extension之间的主要区别
这两种扩展类型共享很多东西。两种类型之间的区别主要在于它们注册到引擎中的钩子。请记住,尽管它非常罕见,但扩展可以同时是PHP扩展和Zend扩展。 Xdebug就是一个很好的例子。
查找主模式的下图
答案 1 :(得分:19)
PHP语言的核心(更像解释器,因为语言只是一个规范)是Zend开发的名为“Zend Engine”的软件(解释器,字节码编译器)。
每个与此核心混淆的模块都应安装为“zend_extension”。
然而,要解决您的问题,请忽略此尝试解释并参阅您正在配置的扩展程序的文档 - http://www.xdebug.org/docs/install。