Eclipse Xdebug замерзает на 57%

Моя проблема:

При запуске конфигурации отладки из Eclipse для одной из моих страниц php страница открывается успешно в Chrome, но отладчик Eclipse замерзает на 57% (в нижнем правом углу Eclipse) и не продвигается дальше. Установленные точки останова никогда не достигаются.

Моя настройка:

  1. MAMP 2.2
  2. PHP 5.3.3
  3. Eclipse Kepler
  4. Eclipse PDT
  5. Xdebug
  6. 2 виртуальных хоста с корнями в / Applications / MAMP / htdocs
  7. Порт Apache: 80
  8. Порт сервера MySql: 3306

Моя настройка виртуальных хостов в MAMP работает нормально. Ниже приведены скриншоты относительно установки Xdebug:

Конфигурация Eclipse XDebug

Конфигурация сервера Eclipse PHP

Исполняемая конфигурация Eclipse PHP

Содержимое php.ini Xdebug

Я подозреваю, что проблема вызвана моими виртуальными хостами. Два виртуальных хоста находятся в разделе «/ Applications / MAMP / htdocs / ledworld» и «/ Applications / MAMP / htdocs / sandbox». Im в настоящее время пытается отладить проект sandbox.

Если бы вы могли предоставить подробные инструкции о том, какие изменения я должен внести в прилагаемые скриншоты или пошаговые инструкции о том, как это сделать, это было бы здорово!

Вот полное решение для всех, кто застрял в этом:

Нижняя часть вашего /Applications/MAMP/bin/php/<your_php_version>/conf/php.ini должна выглядеть так:

 [xdebug] zend_extension="/Applications/MAMP/bin/php/<your_php_version>/lib/php/extensions/no-debug-non-zts-<timestamp>/xdebug.so" xdebug.remote_enable=1 xdebug.remote_host=sandbox xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.idekey=ECLIPSE_DBGP xdebug.remote_log=/tmp/xdebug.log 

Обратите внимание, что тогда xdebug.remote_host параметра xdebug.remote_host установлено имя, присвоенное вашему виртуальному хосту. Поэтому в моем случае файл httpd-vhosts.conf будет содержать запись, подобную этой

 <VirtualHost *:80> ServerName sandbox DocumentRoot /Applications/MAMP/htdocs/sandbox/ <Directory /Applications/MAMP/htdocs/sandbox/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 

и файл my /private/etc/hosts будет иметь такую ​​запись, как это

 127.0.0.1 sandbox 

С точки зрения Затмения, вот что вам следует делать.

Настройте отладчик XDebug для Eclipse. Убедитесь, что выбранный порт соответствует порту, указанному в файле php.ini выше

Убедитесь, что для параметра «Принять удаленную сессию (JIT)» установлено значение «localhost», если вы хотите, чтобы внешние программы запускали сеансы отладки (например, расширение хелперного расширения Chrome Xdebug).

Eclipse Preferences-> PHP-> Debug-> Установленные отладчики-> XDebug-> Configure->

Конфигурация отладчика Eclipse

Добавьте новый или отредактируйте существующий исполняемый файл PHP в Eclipse:

Убедитесь, что поля «Исполняемый путь» и «Файл php.ini» указывают на ту же версию PHP, что используется MAMP (MAMP-> Preferences …-> PHP-> PHP Version. Вероятно, вам не нужно также заполните поле «php.ini File», но я все равно сделаю это.

Eclipse Preferences-> PHP-> исполняемые файлы PHP-> Добавить / редактировать

Исполняемая конфигурация Eclipse PHP

Настройка сервера в Eclipse:

Я использую HTTP-порт 80 для Apache в MAMP (MAMP-> Preferences …-> Ports-> Apache Port). Если вы используете разностный порт, обязательно включите его в конце «Базового URL» на этом экране.

Eclipse Preferences-> PHP-> Серверы PHP-> Новые / Редактировать

Конфигурация сервера Eclipse PHP

Создайте новую конфигурацию отладки Eclipse, которая выглядит так:

«Сервер PHP» должен быть настроен на сервер, который вы создали выше. «Файл» должен быть установлен в файл php, который вы хотите отлаживать в своем проекте. Если в поле «URL» не отображается то, что вы ожидаете ввести в свой браузер, чтобы загрузить ваш файл PHP (а именно http://<virtual_host>/path/to/file/being/debugged.php , снимите флажок «Авто «Создать» и вручную изменить вторую часть поля «URL», чтобы весь URL-адрес был тем, что вы ожидаете. Не забудьте добавить любые параметры запроса, которые ваш PHP-скрипт ожидает найти в переменной $ _GET.

Конфигурация отладки Eclipse

Вкладка «Отладчик» конфигурации отладки должна выглядеть так:

Убедитесь, что для параметра «Отладчик сервера» установлено значение XDebug. Мне нравится отключить опцию «Break at First Line», потому что мне очень неприятно всегда ломаться в первой строке кода. Вместо этого используйте контрольные точки, чтобы контролировать, где останавливается отладчик.

Конфигурация отладки Eclipse: вкладка отладчика

Это все, что вам нужно делать. Счастливая отладка! 🙂