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

Отладка PHP на OS X - безнадежная?

Я пробовал:

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

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

Ответ 9

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

1) Установите php и debug

brew install php70   
brew install php70-xdebug
  • В PhpStorm - установите флажок Preferences = > Language and Frameworks = > PHP
    Уровень владения Php: 7
    Интерпретатор: PHP 7.0.8 + XDebug (или выберите [...])

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

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

php -S localhost:8080

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

4) Обновить php.ini:
Php = > Interpreter = > [...] = > Файл конфигурации - Открыть в редакторе
Добавьте этот раздел: (проверьте путь 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) Добавить конфигурацию отладки: Run = > Edit Configuration = > add - Php Web Application

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

6) Нажмите "Начать прослушивание" для отладочных подключений Php
7) Настройка контрольных точек
7) Нажмите "Отладка" ( "Зеленая ошибка" )

Ответ 10

Если вы используете 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')...., которую вы можете пропустить. Как только вы запустите свое событие для отладки вашего кода.