УрокНастройка отладчика 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
Аватар пользователя 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
Аватар пользователя SplasH
SplasH написал:

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

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
Аватар пользователя SplasH
SplasH написал:

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

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

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

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

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

05.03.2012 22:59

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

                                                                 
88 88 8b d8 88 88 88 888888888888
88 88 Y8, ,8P 88 88 88 88
88 88 `8b d8' 88 88 88 88
88 88 Y88P 88 88 88 88
88 88 d88b 88 88 88 88
88 88 ,8P Y8, 88 88 88 88
Y8a. .a8P d8' `8b 88 Y8a. .a8P 88
`"Y8888Y"' 8P Y8 88 `"Y8888Y"' 88

Enter the code depicted in ASCII art style.