PHP Xdebug для OS X 10.9 Mavericks

У меня возникают проблемы с настройкой моей среды разработки PHP на OS X после установки OS X 10.9 Mavericks.

Вот команда, которую я использую для установки.

sudo pecl install xdebug

downloading xdebug-2.2.3.tgz ...
Starting to download xdebug-2.2.3.tgz (250,543 bytes)
.....................................................done: 250,543 bytes
66 source files, building
running: phpize
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

ERROR: `phpize' failed

У кого-нибудь есть решение или обходное решение?

Ответ 1

Быстрый способ копирования вставки

sudo sh -c 'echo zend_extension=$(find /usr/lib/php/extensions -name "xdebug.so") >> $(php -qr "echo php_ini_loaded_file();") && apachectl restart'

Эта команда выполняет следующие действия:

  • Находит собственное расширение Xdebug, которое поставляется с Xcode
  • запрашивает php, какой файл конфигурации загружен
  • Добавляет путь расширения Xdebug в файле конфигурации
  • Перезапускает apache.

Совместим с Sierra, El Capitan и Yosemite с привязанным апачем, но не тестировался с MAMP и XAMPP.

Перед запуском команды убедитесь, что инструменты командной строки Xcode установлены: xcode-select --install

Ответ 2

Не знаю об использовании pecl. Получение Xdebug после установки OS X довольно просто без pecl. У вас есть два простых варианта:

  • Используйте версию, уже доступную по адресу:

    /usr/lib/php/extensions/no-debug-non-zts-2010052/xdebug.so
    
  • Создайте свой собственный:

    • Убедитесь, что у вас есть инструменты CLI Xcode: xcode-select --install предложит вам установить инструменты CLI. С установленными инструментами CLI внутри /usr/include/php должно быть содержимое.

    • Перейдите в http://xdebug.org/download.php и загрузите исходный tarball для нужной вам версии Xdebug. Например: http://xdebug.org/files/xdebug-2.2.3.tgz.

    • Извлеките tarball и cd в созданный каталог. Внутри этого каталога вы увидите README. Отсюда:

      $ phpize
      Configuring for:
      PHP Api Version:         20100412
      Zend Module Api No:      20100525
      Zend Extension Api No:   220100525
      $ ./configure --enable-xdebug
      checking for grep that handles long lines and -e... /usr/bin/grep
      checking for egrep... /usr/bin/grep -E
      checking for a sed that does not truncate output... /usr/bin/sed
      [... output ...]
      $ make
      [... output ...]
      

Ваш встроенный xdebug.so теперь находится в modules/xdebug.so. phpize имеет решающее значение для установки установленных инструментов XCode CLI, поскольку phpize устанавливает параметры сборки для вашей версии PHP.

С вашим xdebug.so в руке из (1) или (2) выше вы можете добавить этот блок к php.ini, который используется вашим php или php-fpm:

[Xdebug]
zend_extension=<full_path_to_xdebug.so>
xdebug.remote_enable=1
xdebug.remote_host=<host running PHP (e.g. localhost)>
xdebug.remote_port=<port Xdebug tries to connect to on the host running PHP (default 9000)>

Ответ 3

Здесь есть две проблемы. Во-первых, вам нужно установить инструменты командной строки Xcode с помощью команды:

xcode-select --install

Это означает, что файлы, ранее не найденные в /usr/include/php/, будут доступны.

Следующим шагом будет установка autoconf так же, как Арес показывает в его ответ.

Я бы cd в вашу папку для скачивания сначала

cd ~/Downloads/
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
tar xzf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr/local
make
sudo make install

теперь вы можете запустить команду pecl install

sudo pecl install xdebug

Ответ 4

Если вы используете Mac Yosemite 10.10, ни один из вышеперечисленных ответов не решил проблему. Выполните следующие действия:

  • Откройте терминал

  • Выполните find /usr/lib/php/extensions -name "xdebug.so", чтобы узнать путь к библиотеке отладки.

  • Выполнить sudo nano /etc/php.ini, чтобы открыть и отредактировать файл php.ini
  • В php.ini добавьте следующие строки в конце

    [XDebug]
    zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    

(Когда закончите, введите control+o для сохранения и control+x, чтобы закрыть файл)

(Не забудьте заменить значение в zend_extension на все, что вы получили от первой команды терминала)

  1. Выполнить sudo apachectl restart для загрузки новой конфигурации
  2. Отдохните и расслабьтесь.

Ответ 5

Для тех, кто сталкивается с этой проблемой, мне пришлось строить autoconf из источника. Я выполнил этот ответ из другого вопроса StackOverflow.

fooobar.com/questions/24726/...

Ответ 6

Для проблемы с ошибкой phpize попробуйте решить эту проблему: sudo ln -s/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/usr/include

Ответ 7

Мне пришлось brew install xdebug и выбрать для моей версии PHP, и это сработало! Например,

brew install homebrew/php/php56-xdebug

Для варианта версии PHP 5.6.