Отладка PHP на OS X - безнадежно? - PullRequest
27 голосов
/ 17 сентября 2008

Я пробовал:

  1. Xdebug и Eclipse. Eclipse запускает веб-браузер, но браузер пытается получить доступ к несуществующему файлу в пакете .app Eclipse.
  2. Xdebug и NetBeans. Это немного лучше; браузер открывает страницу в / tmp с надписью «Запуск. Пожалуйста, подождите ...», но ничего не происходит.
  3. Xdebug и debugclient, инструмент CLI, который поставляется вместе с Xdebug. MacPorts (который я использовал для установки PHP и Xdebug), похоже, не устанавливает его сам по себе, и когда я пытаюсь скомпилировать его вручную, мне говорят «у вас странный libedit». Установка libedit через MacPorts не решает эту проблему.
  4. Отладчик Zend (точное имя ускользает от меня прямо сейчас) и Eclipse. Я не могу вспомнить, в чем была проблема, так как это было некоторое время назад, но это не сработало.

Что касается Xdebug, по крайней мере, я уверен, что установил его правильно. Он обнаруживается как с phpinfo () в файле PHP, так и с php -i в CLI.

Если кому-то удалось так или иначе заставить отладку PHP работать на Mac, я был бы признателен, если бы вы поделились со мной, как это сделать. Засорение кода с помощью var_dump($foo);die(); быстро устареет. Бонусные баллы, если это можно сделать без с помощью какого-либо редактора вирусов, например Eclipse, или той дорогой проприетарной вещи, которую Zend хочет продать мне.

Мой сервер подключается к PHP через FastCGI, если это делает разницу.

Ответы [ 9 ]

21 голосов
/ 17 сентября 2008

Возможно, вы захотите посмотреть MacGDBp . Это новый, бесплатный, и пользовательский интерфейс выглядит великолепно. Он также использует расширение Xdebug PHP. Вы можете найти инструкции в разделе help , который включает в себя конфигурации Xdebug, а также хороший обзор приложения от парней из Particletree здесь: Silence The Echo с MacGDBp .

11 голосов
/ 09 января 2009

Вот как я это сделал:

1 - Скопируйте последнюю версию xdebug.so из http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging в /usr/libexec.

2 - добавить следующее в глобальный php.ini:

zend_extension="/usr/libexec/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1

3 - Перезапустите Apache и запустите MacGDBp .

3 голосов
/ 16 октября 2012

Просто хотел обновить эту ветку, чтобы вы знали, что здесь есть новое приложение http://codebugapp.com/ оно коммерческое, но это клиент Xdebug для OSX

2 голосов
/ 17 сентября 2008

Я тоже искал php-отладчик для osx. Это выглядит многообещающе: http://www.turingart.com/phpdebugger_lan__en.htm

1 голос
/ 22 сентября 2010

Я использую Komodo 5 --- отладка прекрасно работает не только с PHP, но также с Ruby и Python. В основном я использую его для отладки сценариев PHP, которые выполняются на удаленном сервере, но вы также можете выполнять локальные операции. Это не бесплатно, но если ваше собственное время чего-то стоит, вы вернете свои деньги в течение нескольких часов!

0 голосов
/ 05 сентября 2016

Если вы используете MAMP, обратите внимание, что в нем есть 2 файла php.ini, которые необходимо обновить. Мне понадобились часы, чтобы понять это. Два файла находятся в следующих папках для MAMP 4,

/Applications/MAMP/bin/php/php5.6.25/conf/php.ini
/Applications/MAMP/conf/php5.6.25/php.ini

если вы используете php7, вам нужно будет обновить эти файлы. Прокрутите до конца файлы и убедитесь, что у вас есть следующие записи,

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.6.25/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1

Затем убедитесь, что вы перезагружаете сервер, иначе новые настройки не будут загружены. Чтобы убедиться, что Xdebug работает правильно, откройте стартовую страницу MAMP и нажмите на вкладку phpinfo. Ищите xdebug в списке, вы должны увидеть раздел Xdebug , который показывает, что расширение загружено и включено, иначе что-то не так с указанными выше конфигурациями.

Затем вы можете запустить MacGDBp, и он подключится к порту 9000 и позволит вам отлаживать ваши файлы.

ПРИМЕЧАНИЕ. Если вы разрабатываете на Wordpress, пропустите сеансы отладки AJAX. Это регулярно, так как Dashboard будет пинговать сервер для изменений. Если вы включите «разрыв на первой строке» в настройках MacGDBp, вы увидите разрывы сессий ajax на строке define ('DOING_AJAX')...., которую вы можете пропустить. Как только вы это сделаете, запустите ваше событие для отладки вашего кода.

0 голосов
/ 11 июля 2016

Есть способ как это сделать используя

1) Установите php и отладьте

brew install php70   
brew install php70-xdebug
  • В PhpStorm - проверьте Настройки => Язык и рамки => PHP
    Уровень языка Php: 7
    Интерпретатор: PHP 7.0.8 + XDebug (или выберите из [...])

  • Проверьте конфигурацию отладки: Предпочтения => Язык и рамки => PHP => Отладка => Раздел Xdebug
    Необходимо установить все флажки и установить порт отладки: 9001

2) запустить сервер в каталоге вашего приложения:

php -S localhost:8080

3) Добавьте localhost: 8080 в настройки PhpStorm => Язык и фреймворки => PHP => Серверы:
Имя: Localhost: 8080
Хост: localhost
Порт: 8080
Отладчик: Xdebug

4) Обновление php.ini:
Php => Интерпретатор => […] => Файл конфигурации - Открыть в редакторе
Добавьте этот раздел: (проверьте путь zend_extention через cli)

[Xdebug]
zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001 (same as in Debug preferences)

5) Добавить конфигурацию отладки: Выполнить => Изменить конфигурацию => Добавить - Php Web Application

  • Выберите Localhost: 8080 сервер

6) Нажмите «Начать прослушивание соединений для отладки Php»
7) Установите точки останова
7) Нажмите «Отладка» (зеленая ошибка)

0 голосов
/ 25 сентября 2008

Я отлаживаю PHP CLI-скрипты и веб-задачи (через apache и т. Д.), Используя Eclipse & ZendDebugger все время

Я ответил на аналогичный вопрос по следующей ссылке: нажмите здесь

Надеюсь, это то, что вы ищете.

0 голосов
/ 17 сентября 2008

Думаю, я не получаю бонусных баллов, но Zend Studio работает на моем Mac, подключаясь к Apache, работающему в VMware.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...