Когда я установил Xdebug через pecl
, он добавил следующую строку в файл php.ini.
extension="xdebug.so"
и все, что я использовал, сработало. До сегодняшнего дня.
Сегодня у меня возникли проблемы с настройкой Xdebug для интерактивной отладки. Я не мог заставить ничего работать, пока не изменил
zend_extension="/usr/local/lib/php/extensions/xdebug.so"
(Предостережение: я думаю, что это то, что заставило меня работать, но я не уверен на 100%)
Это подняло мой вопрос. В чем разница в загрузке расширения через extension=
vs. zend_extension
?
Ядро языка PHP (более похоже на интерпретатор, потому что язык – это просто спецификация) – это программное обеспечение (интерпретатор, компилятор байт-кода) под названием «Zend Engine», разработанный Zend.
Каждый модуль, который работает с этим ядром, должен быть установлен как «zend_extension».
И все же, чтобы решить вашу проблему, проигнорируйте эту попытку объяснения и проконсультируйтесь с документами настраиваемого расширения – http://www.xdebug.org/docs/install .
Zend_extentions относятся к расширениям, которые встроены в сам zend-движок. PHP, который встроен в сам движок zend. Этот движок анализирует, интерпретирует и выполняет скрипт php. Если мы изменим движок, он изменит способ работы PHP.
Следующее сообщение будет описывать основное различие между расширением и zend_extension php
Оба типа расширения разделяют много вещей. Разница между обоими типами в основном связана с крючками, которые они регистрируют в Engine. Помните, что, несмотря на это очень редко, расширение может быть одновременно расширением PHP и расширением Zend. Xdebug – хороший пример.
Найдите ниже изображение для главной схемы
Для более подробной информации обратитесь к этой ссылке
zend_extension обозначают собственные расширения Zend, такие как оптимизатор, фреймворк и т. д.
расширение для всего остального (PEAR, PECL и т. д.)
Поэтому я не совсем уверен, почему смена его на Zend с тех пор, как Xdebug не является продуктом zend, и, возможно, это не проблема.
Возможно, это просто полный путь, который помог? Пытаться
extension="/usr/local/lib/php/extensions/xdebug.so"