What does “XDEBUG NOT LOADED AS ZEND EXTENSION” warning means?

匿名 (未验证) 提交于 2019-12-03 02:56:01

问题:

Xdebug is loaded, but not loaded as a zend extension. What does it mean? How to resolve this problem?

回答1:

This error means that you used "extension=" to load Xdebug. That could be in your normal php.ini, or in a file called xdebug.ini that some distributions like to add. In any case, Xdebug needs to be loaded as a Zend extension for certain features such as single step debugging. As Xdebug is not meant to work as a normal extension, it might crash and burn too.

The syntax for loading Xdebug as Zend extension depends on PHP version and build. I would suggest you use http://xdebug.org/wizard.php to provide you with the correct lines.



回答2:

Make sure if it is configured to load correctly as a zend_extension. Inside php.ini add this line

zend_extension="/usr/local/php/modules/xdebug.so" 


回答3:

If you want to activate zend*nts*.dll into you php.ini file on Windows servers, you must use zend_extension_ts directive instead of zend_extension

Example to load xdebug :

[XDeug] zend_extension_ts="DRIVE:/PATH_TO_XDEBUG/php_xdebug.dll" xdebug.show_local_vars=1 xdebug.default_enable=On 

Note : the double quotes to your dll file

Hope that will helps someone :)



回答4:

Others have already explained that the error is because Xdebug is being loaded as a regular PHP module instead of as a Zend extension. You can use the wizard that Derick linked to or manually enter the line as Starx showed.

However, there is an issue that you may run into. The extensions_dir directive in php.ini currently only applies to PHP modules, not to Zend extensions. Therefore, you cannot use a common configuration like this:

[PHP] extension_dir  = .\ext extension      = php_memcache.dll … [zend] zend_extension = php_xdebug-2.2.3-5.3-vc9-nts.dll 

While PHP will correctly load php_memcache.dll from the ext sub-directory, it will not load php_xdebug-2.2.3-5.3-vc9-nts.dll and will throw the error Failed loading php_xdebug-2.2.3-5.3-vc9-nts.dll.

To fix this, you will need to either use an fully-qualified/absolute path such as:

zend_extension = C:\foobar\PHP\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll 

or a relative path such as these:

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 

(The wizard will return zend_extension=.\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll which includes the directory but also a superfluous .\)



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!