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 на все, что вы получили от первой команды терминала)
- Выполнить
sudo apachectl restart
для загрузки новой конфигурации
- Отдохните и расслабьтесь.
Ответ 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.