УрокНастройка отладчика xDebug между IDE PhpStorm и сервером Open Server

Начну с небольшого вступления. PhpStorm использую в качестве IDE т.к. считаю её лучшим продуктом для разработки, который включает в себя огромное количество плюшек. Open Server - сервер, с которым я познакомился совсем недавно, однако он полностью меня покорил своей скоростью работы и лёгкостью управления.

Без отладки кода в пошаговом режиме жить довольно сложно, даже krumo или debug() не могут мне это заменить. Сегодня я столкнулся с острой необходимостью настроить дебагер под Open Server, и наткнулся на несколько подводных камней, которые не столь очевидны, как хотелось бы. Итак, ближе к телу.

Настраиваем Open Server

Первое. В описании Open Server сказано, что xDebug настроен на сервере только для PHP 5.3, поэтому останавливаем сервер, открываем в трее Open Server -> Настройки -> Вкладка "Модули" и меняем версию PHP на 5.3.

openserver1.png

Второе. Лезем в Open Server -> Инструменты -> Конфигурация -> PHP 5.3.9. По сути, вам просто надо найти параметр xdebug.remote_enable и установить его значение в 1, убрав точку с запятой в начале названия:

xdebug.remote_enable = 1

Настраиваем PhpStorm

Теперь открываем PhpStorm и открываем папку с нашим проектом. После чего идём копаться в его настройках (Ctrl + Alt + S). Находим вкладку PHP, нажимаем, потом кликаем на Servers. В появившемся окне справа нажимаем на + (добавляем новый сервер):

openserver1_5.png

После этого в поле Name вводим любое имя (например, OpenServer). В поле Host вводим название сайта на локальном сервере. Т.е. то имя сайта, по которому вы заходите на локальный сайт, когда OpenServer включен. У меня один из сайтов носит короткое название pg (даже без доменной зоны), поэтому я его и указал.

Теперь важное: во-первых, нажмите галочку Use path mapping. Во-вторых, в колонке под Path on server вы должны указать путь к файловой директории вашего сайта, относительно веб сервера. Т.е. если OpenServer стоит на диске W, а сайт назвается pg, то путь будет как на скриншоте:

W:\html\pg\www\

Если же диск или имя сайта другие - просто достаточно поменять значения на свои.

После добавления сервера сохраняем настройки путём нехитрого нажатия на кнопку ОК. Далее на панели PhpStorm'a нажимаем на кнопку добавления конфигурации для дебагера:

openserver1_1.png

Далее выбираем Edit Configuration. В появившемся окне снова нажимаем на плюсик и выбираем PHP Web Application:

openserver1_2.png

Теперь вводим имя для нашей конфигурации (например, openserver). После чего в качестве сервера выбираем созданный нами ранее OpenServer, и браузер, в котором будет открываться сайт (у меня это Firefox) и сохраняем конфигурацию:

openserver1_3.png

Далее открываем код, напротив строки, с которой хотите начать отладку, ставите BreakPoint простым кликом на полях. После чего нажимаете на кнопку Debug (Shift + F9):

openserver1_4.png

Вот и всё, дебаг настроен:

openserver1_6.png

Строка кода, на которой находится дебагер, выделена синим цветом. Снизу расположены переменные, доступные на тот момент, когда дебагер находится на определённой строке. Чтобы сделать следующий шаг дебагером нажимайте F8, чтобы продолжить выполнение кода без дебагера - жмите F9. Полный мануал по работе с отладчиком в PhpStorm вы можете почитать здесь.

Приятной отладки!

Комментарии

Аватар пользователя Дмитрий
Дмитрий написал:

Спасибо, но PhpStorm коммерческий, его нельзя использовать на рабочем месте. Есть варианты?

14.02.2012 09:52
Аватар пользователя virua
virua написал:

NetBeans — хорошая IDE для PHP. Бесплатная, кросс-платформенная. Обязательно попробуйте, если до этого не пробовали.

14.02.2012 10:57
Аватар пользователя deo
deo написал:

125 $ это копейки, если ты работаешь на нем, а не смотришь!

01.11.2015 12:05
Аватар пользователя ice
ice написал:

Щикарно ))

Настройка отладчика xDebug между IDE PhpStorm и сервером Open Server

15.02.2012 08:51
Аватар пользователя ice
ice написал:

13 числа задумал потестировать сборки.

Прошелся по самым известным , всякие wamp`ы , xampp`ы , денверы.

На хабре наткнулся на свежую февральскую статью об Open server.

Пошел сразу туда , поставил на закачку и решил пробежаться по форуму .

Зашел в "Полезые советы" > "Настройка xDebug на PhpStorm + OpenServer" и был приятно удивлен ссылке на знакомый блог )), да еще и со статьей которую ждал 2 месяца).

Кстати , в моем случае одной строки xdebug.remote_enable = 1 для настройки было мало. Пришлось еще в мануал глянуть.

Мне бы интересно было взглянуть на отладку конкретного примера , в качестве испытуемого можно взять тему из ядра . В формате видео было бы вообще здорово . Можно даже особо не комментировать.

Это все конечно , если будет свободная минутка , а от работы отвлекать не хочу , сам очень занят , понимаю).

15.02.2012 09:12
Аватар пользователя ice
ice написал:

Кстати , чуть не забыл , пару дней назад наткнулся на довольно свежее видео по теме .

Там используется связь с браузером .

15.02.2012 09:39
Аватар пользователя vegas
vegas написал:

Снова с великой благодарностью!

Только вот:

Warning: file_put_contents(temporary://filF433.tmp) [function.file-put-contents]: failed to open stream: "DrupalTemporaryStreamWrapper::stream_open" call failed в функции file_unmanaged_save_data() (строка 1904 в файле W:\html\MySite\www\includes\file.inc).
Невозможно создать файл.
Warning: file_put_contents(temporary://filF453.tmp) [function.file-put-contents]: failed to open stream: "DrupalTemporaryStreamWrapper::stream_open" call failed в функции file_unmanaged_save_data() (строка 1904 в файле W:\html\MySite\www\includes\file.inc).
Невозможно создать файл.

Не подскажите, в чем дело?

18.02.2012 08:57
Аватар пользователя Spleshka
Spleshka написал:

Настрой папку для временного хранения файлов в друпале

18.02.2012 09:48
Аватар пользователя ice
ice написал:

Это ясно , интересно почему так случилось .

18.02.2012 09:55
Аватар пользователя vegas
vegas написал:

Вы уж не серчайте на дилетанта, плиз:

Настрой папку для временного хранения файлов в друпале

Я не совсем понимаю (
На сервере всё в норме, на Денвере - тоже. Такое ощущение, что это в php.ini надо корректировать. Надо только знать, что именно, пардон.
Гугл мне пока не помог. Может я не тот вопрос задаю? ;)

Заранее благодарен.

p.s. А вообще Open Server меня очаровал своей легкостью и "шустростью". Показалось, что даже винт не так напрягается :)

19.02.2012 06:14
Аватар пользователя vegas
vegas написал:

Протупил, согласен! :)
Евгений, надеюсь, ты грехи отпускаешь... Каюсь! :)

19.02.2012 06:16
Аватар пользователя Spleshka
Spleshka написал:

Друпалил ли ты на ночь, сын мой?

19.02.2012 14:38
Аватар пользователя vegas
vegas написал:

Тем, кто пользуется NetBeans: почему-то при отладке не срабатывают точки останова. :( Просто выполняется весь код. Может известны причины?
Вроде всё по инструкциям настраивал... Если есть мысли, поделитесь, пожалуйста.

27.02.2012 17:44
Аватар пользователя Дмитрий
Дмитрий написал:

Друг, спасибо за статью.

05.03.2012 22:59
Аватар пользователя Александр
Александр написал:

А у меня при нажатии на дебаг вылазит окошко "Firefox уже запущен, но не отвечает. Чтобы открыть новое окно, вы должны сперва завершить запущенный процесс Firefox или перезагрузить компьютер". Как быть?

06.07.2012 23:06
Аватар пользователя Александр
Александр написал:

Пардон. Настроил.
Прописал в шторме и в конфиге айди.
xdebug.idekey = "phpstorm"
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_port = 9000

06.07.2012 23:26
Аватар пользователя andypost@drupal.org
andypost@drupal.org написал:

Сделал на тебя ссылку с подобной инструкцией в handbook

25.08.2012 19:31
Аватар пользователя Rodman
Rodman написал:

Спасибо за руководство. Очень подробно. Помогло!

08.12.2012 21:04
Аватар пользователя rimen
rimen написал:

Спасибо за мануал!
У меня заработало при еще одном условии - включить настройку "Всегда использовать вирт диск" в OpenServer.
По умолчанию стояло автоопределение (диск не создавался) и абсолютный путь вида E:\html\pg\www (E - реальный логический диск, в котором установлен сервер) не работал

01.03.2013 19:07
Аватар пользователя Гость
Гость написал:

Здравствуйте, а Вы не знаете, почему по нажатию на дебаг, в браузере всегда пишется "Ожидание ( домен )" ,а в самом шторме всегда вот так :

и так всегда, даже если я ошибки делаю и точки остановы ставлю?

27.06.2013 14:29
Аватар пользователя Мурад
Мурад написал:

Тоже такая же проблема, получилось ли решить проблему?

05.03.2015 14:46
Аватар пользователя alfaq
alfaq написал:

как решили проблемку?

04.09.2015 13:52
Аватар пользователя innerfly
innerfly написал:

Для сервера xampp надо в php.ini раскомментировать блок [XDebug], и поправить параметр xdebug.remote_enable = 1. В PHPStorm в настройках PHP->Servers не ставить галочку "Use path mappings"

14.08.2013 22:55
Аватар пользователя Stas
Stas написал:

В Коделобстер-е дебаггер сделан приятнее и сразу сам настраивается
+есть специальный плагин для Друпала

05.09.2013 12:13
Аватар пользователя Ваше имя
Ваше имя написал:

только плагин для друпала - платный :(

26.10.2013 19:56
Аватар пользователя  Андрей
Андрей написал:

СПАСИБО МЫ ЕЩЁ ХОТИМ ТАКИЕ ХОРОШИЕ СТАТЬИ!!!! :):):):)

правда сначала не получилось.. НО КЛАСС!!!

20.01.2014 00:36
Аватар пользователя fel1ow
fel1ow написал:

Инфа о дебаггере появилась в phpinfo, но сам дебаггер не запустился пока я не прописал в php.ini настройку xdebug.extended_info=1. Сижу на PhpStorm 8.0.3, Windows 7 x64, OpenServer 5.2.2

01.11.2015 19:56

Комментировать