Как правильно установить xdebug для удобной работы
1. Скачиваем расширение — http://www.xdebug.org/download.php (я качаю ts) и копируем в папку с расширениями php.
2. В php.ini пишем
1 2 3 4 5 6 7 8 9 10 11 12 13 |
zend_extension_ts = "<путь-к-папке-ext>/php_xdebug.dll" xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_port=9000 xdebug.remote_host=localhost xdebug.idekey=bullgare ;ну или другой ;это для профилирования xdebug.profiler_enable=Off xdebug.profiler_output_dir="c:\traces" xdebug.profiler_enable_trigger=On xdebug.profiler_output_name = cachegrind.out.%t.%p |
После перезапуска апача phpinfo будет содержать раздел xdebug.
3. Качаем плагин для firefox — Xdebug Helper с неофициального сайта — http://www.softpedia.com/progDownload/Xdebug-Helper-Download-79882.html, к сожалению, на официальном сайте его уже нет, там он называется EasyXdebug и не работает (https://addons.mozilla.org/nl/firefox/addon/58688).
Он для нового firefox не подходит — надо поправить версию. Залазим в скачанный архив (можно временно переименовать в zip, к примеру), редактируем файл install.rdf — ставим параметр maxVersion=»5.0″. Сохраняем в архив, переименовываем его обратно (меняем расширение). Потом он ставится без проблем. Прописываем в настройках плагина тот же ключ, что и в php.ini.
4. После этого в среде разработки настраиваем всё в соответствии с настройками php и плагина. Я лично пользуюсь phpStorm, в нём надо ткнуть в кнопку Select Debug configuration, создать новую конфигурацию, создать в конфигурации новыйServer, у которого в Web server root URL пишем url к корню сервера, к примеру, http://example.com. Во вкладке Mappings в поле Local path пишем локальный путь к серверу (с:\mysite).
В настройках конфигурации прописать браузер — firefox и idekey.
5. Использование:
В браузере ткнуть в правом нижнем углу кнопку Start/stop xdebug session, в IDE нажать на кнопку debug, поставить точку останова, обновить страничку.
С момента на писания статьи IDE немного поменялась, про настройку лучше почитать в их официальном блоге — Configuring PHP debugging in PhpStorm 2.0.
Если идёт работа через nginx+php-fpm, то надо прописать порт 9900, к примеру (обычно fastcgi висит на 9000 порту). В nginx.conf в раздел http добавляем fastcgi_read_timeout 600;, а в php/fpm/pool.d/www.conf — request_terminate_timeout = 600 (это для Ubuntu;-) ). Нужно это для того, чтобы nginx и fastcgi не рвали соединение через 60 секунд. (http://habrahabr.ru/qa/1452/).
Xdebug helper уже почему-то не поддерживается, но его можно скачать с официального сайта (правда надо подправить install.rdf, т.к. он устарел), уже модифицированная версия — xdebug_helper-0.3.1-fx (надо поставить расширение xpi).
Если на сервере идёт одновременная работа с нескольких разработческих машин, то надо в ini дописать
1 2 |
xdebug.remote_connect_back = 1 ;xdebug.remote_host закомментировать |
Хотя это даст возможность любому зашедшему с правильным ключом запустить любой запрос в режиме отладки, что не хорошо для открытых извне серверов. Если же сервер открыт всем , то можно попробовать использовать Xdebug proxy (phpStorm 2.1 поддерживает прокси).
Описание всех параметров xdebug
Similar Posts
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.
Далее у меня не видел Xdebug NetBeans. Я исправил это заменив порт 9000 на другой (9001) как в php.ini так и в настройках к NetBeans.