Xdebug 已加载,但未作为 zend 扩展加载。什么意思?如何解决这个问题?
此错误意味着您使用了"extension="来加载Xdebug。这可能是在你的普通php.ini中,或者在一个名为xdebug的文件中.ini一些发行版喜欢添加。在任何情况下,Xdebug 都需要作为某些功能的 Zend 扩展加载,例如单步调试。由于 Xdebug 不是作为普通扩展工作的,因此它也可能会崩溃和刻录。
将 Xdebug 加载为 Zend 扩展的语法取决于 PHP 版本和构建。我建议您使用 http://xdebug.org/wizard.php 为您提供正确的线条。
确保它是否配置为作为zend_extension
正确加载。php.ini
内部添加此行
zend_extension="/usr/local/php/modules/xdebug.so"
其他人已经解释说,这个错误是因为Xdebug被加载为一个常规的PHP模块,而不是作为一个Zend扩展。您可以使用 Derick 链接到的向导或手动输入 Starx 显示的行。
但是,您可能会遇到一个问题。php.ini
中的 extensions_dir
指令目前仅适用于 PHP 模块,不适用于 Zend 扩展。因此,您不能使用如下通用配置:
[PHP]
extension_dir = .'ext
extension = php_memcache.dll
…
[zend]
zend_extension = php_xdebug-2.2.3-5.3-vc9-nts.dll
虽然 PHP 会从ext
子目录正确加载php_memcache.dll
,但它不会加载php_xdebug-2.2.3-5.3-vc9-nts.dll
,并且会抛出错误Failed loading php_xdebug-2.2.3-5.3-vc9-nts.dll
。
若要解决此问题,需要使用完全限定/绝对路径,例如:
zend_extension = C:'foobar'PHP'ext'php_xdebug-2.2.3-5.3-vc9-nts.dll
或相对路径,如下所示:
zend_extension = ext'php_xdebug-2.2.3-5.3-vc9-nts.dll
zend_extension = ..'phpexts'php_xdebug-2.2.3-5.3-vc9-nts.dll
zend_extension = 'dev'phpexts'php_xdebug-2.2.3-5.3-vc9-nts.dll
(向导将返回zend_extension=.'ext'php_xdebug-2.2.3-5.3-vc9-nts.dll
其中包括目录,但也包括一个多余的.'
如果要在Windows服务器上激活zend*nts*.dll
php.ini
文件,则必须使用zend_extension_ts
指令而不是zend_extension
加载 xdebug 的示例 :
[XDeug]
zend_extension_ts="DRIVE:/PATH_TO_XDEBUG/php_xdebug.dll"
xdebug.show_local_vars=1
xdebug.default_enable=On
注意:dll文件的双引号
希望这将有助于某人:)
首先在 PHP 5.3 及更高版本中,你只需要使用 zend_extension
,而不是 zend_extension_ts
、zend_extension_debug
或 extension
。
php.ini 文件应如下所示
[xdebug]
zend_extension="C:'xampp'php'ext'php_xdebug-3.2.0RC2-8.1-vs16-x86_64.dll"
xdebug.mode=debug
xdebug.client_host=127.0.0.1
注意!! 为避免错误,您需要安装正确的 xdebug 库文件。
例如,假设您使用 Windows 并安装此xamp
版本xampp-windows-x64-8.1.10-0-VS16-installer
。下载有效的 .dll xdebug 文件PHP 8.1 VS16 TS (64 bit)
。
完成以上所有操作,我保证没有加载错误或问题
尝试构建 xdebug 时结束了这里,那么这意味着你已经将它构建为"静态"扩展(而不是 zend 扩展)。
您可以使用configure --with-xdebug=shared
将其构建为共享扩展(dll/so;您应该看到一个表,显示 xdebug 现在配置为构建为共享扩展而不是静态扩展),以便之后可以将其作为 zend 扩展加载。
我不知道你是否可以做一个静态的zend扩展。
另外,请注意,运行 xdebug 的完整测试套件需要不激活 opcache ( configure --disable-opcache --with-xdebug=shared
)
为我工作:在 php 中.ini
zend_extension = php_xdebug-3.0.4-8.0-vs16-x86_64.dll