Настройка xDebug/php 5.4.0, Eclipse 4.2, Windows 7 x64
Использованы источники:
http://xdebug.org/download.php - компоненты xDebug
http://habrahabr.ru/post/31505/ - пример установки на устаревших компонентах (но всё равно)
http://stackoverflow.com/questions/2374567/eclipse-xdebug-session-never-completes - решение сообщения о невозможности подключения к xDebug. (нужно убрать кавычки в путях к dll xDebug).
Вводная.
На компьютере установлены 2 сервера Apache. Один на порту 8080 (для разработки), другой на 8081 (Zend). Настраивать буду на 8080. Абсолютный путь к 8080 стандартный:
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs
Путь к PHP такой:
E:\php\php-5.4.0-Win32-VC9-x86
Предполагается, что Eclipse (Eclipse IDE for Java Developers) и PDT-plugin установлены.
Итак:
1. Скачиваем необходимую ddl (я выбрал "потокоопасную") с сайта xDebug в каталог !
2. Прописываем в
zend_extension=E:\php\php-5.4.0-Win32-VC9-x86\ext\php_xdebug-2.2.1-5.4-vc9.dllПояснения к этим настройкам: путь в zend_extension пишется !!!без кавычек!!!, remote_host="localhost" и никакие настройки apache, что он висит на порту 8080 здесь присутствовать не должны.
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
3. Перезапускаем соответствующий Apache (на 8080).
4. Теперь надо настроить Eclipse.
Создадим проект PHP: File->New->PHP project... Путь к файлам project будет "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\test\", название проекта xDebug. Добавим в проект файл test01 с содержимым:
$x=0;Настроить Eclipse на использование xDebug и прописав порт apache:
for($x=0;$x<=10;$x++)
{
echo "x=$x";
}
Теперь правильно настроить сам xDebugger и прописать путь к отлаживаемому файлу:
и запускаем этот файл на отладку:
Результат:
Результат достигнут. Останов на первой строке и список переменных.
<<<!!! Дописать, как собрать xDebug из исходников под linux !!!>>>
Теперь следующая задача. А как это работает через сеть? По-настоящему на другом компе, а не на локальном? Кажется, что всё должно быть очевидно. Параметры в php.ini должны быть теми же:
zend_extension=E:\php\php-5.4.0-Win32-VC9-x86\ext\php_xdebug-2.2.1-5.4-vc9.dllНо вот незадача. Не работает с этими параметрами. Читаем страницу с описанием параметра remote_enable. Там написано, что при включении этого параметра значение параметра remote_host не имеет значения. Оказывается, что это нетак. Пошёл на риск и прописал в remote_host другой параметр - имя машины, откуда я провожу отладку w142721. После перезапуска apache стало возможным отлаживать php удалённо!
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
Дополнительно:
Найдите ошибки в PHP-приложениях,
Комментариев нет:
Отправить комментарий