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

Xdebug загружается, но не загружается как расширение zend. Что это значит? Как решить эту проблему?

Ответы

Ответ 1

Эта ошибка означает, что вы использовали "расширение =" для загрузки Xdebug. Это может быть в вашем обычном php.ini или в файле с именем xdebug.ini, который некоторые дистрибутивы любят добавлять. В любом случае Xdebug необходимо загружать как расширение Zend для некоторых функций, таких как одношаговая отладка. Поскольку Xdebug не предназначен для работы как нормальное расширение, он может также сбой и запись.

Синтаксис загрузки Xdebug как расширения Zend зависит от версии PHP и сборки. Я предлагаю вам использовать http://xdebug.org/wizard.php, чтобы предоставить вам правильные строки.

Ответ 2

Убедитесь, что он настроен на правильную загрузку в качестве zend_extension. Внутри php.ini добавьте эту строку

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

Ответ 3

Если вы хотите активировать 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

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

Ответ 4

Другие уже объяснили, что ошибка связана с тем, что Xdebug загружается как обычный PHP-модуль вместо расширения Zend. Вы можете использовать wizard, с которым 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 из подкаталога 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, который включает в себя каталог, но также лишний .\)