Что означает предупреждение XDEBUG NOT LOADED AS ZEND EXTENSION?

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" 

Если вы хотите активировать zend*nts*.dll в файл php.ini на серверах Windows, вы должны использовать директиву 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-файл

Надеюсь, что это поможет кому-то 🙂

Другие уже объяснили, что ошибка связана с тем, что Xdebug загружается как обычный PHP-модуль вместо расширения Zend. Вы можете использовать мастер, с которым связан Derick или вручную введите строку, как показал Starx.

Однако есть проблема, с которой вы можете столкнуться. Директива extensions_dir в php.ini настоящее время применима только к PHP-модулям, а не к расширениям Zend . Поэтому вы не можете использовать общую конфигурацию, например:

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

Хотя PHP будет правильно загружать php_memcache.dll из php_memcache.dll ext , он не будет загружать 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 который включает в себя каталог, но также и лишний .\ )