Моя проблема:
При запуске конфигурации отладки из Eclipse для одной из моих страниц php страница открывается успешно в Chrome, но отладчик Eclipse замерзает на 57% (в нижнем правом углу Eclipse) и не продвигается дальше. Установленные точки останова никогда не достигаются.
Моя настройка:
Моя настройка виртуальных хостов в MAMP работает нормально. Ниже приведены скриншоты относительно установки 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->
Добавьте новый или отредактируйте существующий исполняемый файл PHP в Eclipse:
Убедитесь, что поля «Исполняемый путь» и «Файл php.ini» указывают на ту же версию PHP, что используется MAMP (MAMP-> Preferences …-> PHP-> PHP Version. Вероятно, вам не нужно также заполните поле «php.ini File», но я все равно сделаю это.
Eclipse Preferences-> PHP-> исполняемые файлы PHP-> Добавить / редактировать
Настройка сервера в Eclipse:
Я использую HTTP-порт 80 для Apache в MAMP (MAMP-> Preferences …-> Ports-> Apache Port). Если вы используете разностный порт, обязательно включите его в конце «Базового URL» на этом экране.
Eclipse Preferences-> PHP-> Серверы PHP-> Новые / Редактировать
Создайте новую конфигурацию отладки Eclipse, которая выглядит так:
«Сервер PHP» должен быть настроен на сервер, который вы создали выше. «Файл» должен быть установлен в файл php, который вы хотите отлаживать в своем проекте. Если в поле «URL» не отображается то, что вы ожидаете ввести в свой браузер, чтобы загрузить ваш файл PHP (а именно http://<virtual_host>/path/to/file/being/debugged.php
, снимите флажок «Авто «Создать» и вручную изменить вторую часть поля «URL», чтобы весь URL-адрес был тем, что вы ожидаете. Не забудьте добавить любые параметры запроса, которые ваш PHP-скрипт ожидает найти в переменной $ _GET.
Вкладка «Отладчик» конфигурации отладки должна выглядеть так:
Убедитесь, что для параметра «Отладчик сервера» установлено значение XDebug. Мне нравится отключить опцию «Break at First Line», потому что мне очень неприятно всегда ломаться в первой строке кода. Вместо этого используйте контрольные точки, чтобы контролировать, где останавливается отладчик.
Это все, что вам нужно делать. Счастливая отладка! 🙂