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