Подтвердить что ты не робот

PHP бросает ошибки XDebug ТОЛЬКО в режиме командной строки

У меня возникли проблемы с запущенными на PHP утилитами в командной строке с тех пор, как я включил XDebug. Он отлично работает при выполнении script через браузер, но как только я попытаюсь выполнить script в командной строке, он выдает следующие ошибки:

h:\www\test>@php test.php
PHP Warning:  PHP Startup: Unable to load dynamic library 'E:\development\xampplite\php\ext\php_curl.dll' - The specified module could not be found in Unknown on line 0
PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0

h:\www\test>

script отлично работает после этого, но это то, что я, похоже, не могу оборачивать. Может ли это быть проблемой в моей конфигурации php.ini? Я не уверен, что в случае, если он рассматривает это, возникает одна и та же ошибка, независимо от того, где я обращаюсь к переменной окружения @php.

Кроме того, все пути внутри моего php.ini являются абсолютными. Не совсем уверен, что происходит здесь.

4b9b3361

Ответ 1

Скорее всего, вы используете два разных файла .ini:

  • Один для использования Apache
  • И еще один для CLI

Или, может быть, у вас такая же проблема с PHP, используемой Apache, но не вижу этого предупреждения, как в журнале ошибок Apache, и это только предупреждение.


В основном решение состоит в том, чтобы загрузить расширение Xdebug, используя:

zend_extension=/.../xdebug.so

вместо:

extension=/.../xdebug.so

Это именно то, что указывает сообщение об ошибке: Xdebug MUST be loaded as a Zend extension - за исключением того, что он не говорит вам, как это сделать.


Примечание:

  • Я использую абсолютный путь к xdebug.so - вы уже делаете это, что приятно (оно все равно требуется)
  • Но я также использую zend_extension: Xdebug - это расширение, которое глубоко зашифровывается в PHP Zend, что означает, что использовать extension недостаточно.

Для получения дополнительной информации и в качестве ссылки см. страницу Установка/активация в документации Xdebug.