Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 021 161 раз!

Форум

Добро пожаловать, Гость!

Пошаговая настройка Xdebug + OpenServer + PHPStorm

Советы и рекомендации, полезные инструкции, обмен опытом
Аватара пользователя
Redee
Сообщения: 218
C нами: 3 года 5 мес

Непрочитанное сообщение Redee » 01 окт 2013, 22:12

1. Подготовка
Xdebug уже встроен в OpenServer и качать нам его не понадобится

Если все же нужен другой релиз xdebug его можно скачать отсюда http://xdebug.org/download.php
и переместить в
e:\OpenServer\modules\php\PHP-5.4.17\ext\
не забыв прописать в php.ini путь к нему (zend_extension)

-----

2. Редактируем php.ini (e:\OpenServer\userdata\config\PHP-5.4.17_php.ini)
Должны быть эти обязательные настройки
[Xdebug]
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
xdebug.idekey = "PHPSTORM"
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir="%sprogdir%/userdata/temp/xdebug/"
xdebug.profiler_output_name = "cachegrind.out.%H%R"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "%sprogdir%/userdata/temp/xdebug/"


Перезапускаем OpenServer
Смотрим чтобы была временная папка xdebug >
e:\OpenServer\userdata\temp\xdebug\

-----

3. Добавляем в браузер закладки со страницы http://www.jetbrains.com/phpstorm/marklets/ после нажатия Generate (IDE key: PHPSTORM)

Изображение


Код закладок имеет такой вид >

Start debugger
javascript:(/** @version 0.5.2 */function() {document.cookie='XDEBUG_SESSION='+'PHPSTORM'+';path=/;';})()


Stop debugger
javascript:(/** @version 0.5.2 */function() {document.cookie='XDEBUG_SESSION='+''+';expires=Mon, 05 Jul 2000 00:00:00 GMT;path=/;';})()


Debug this page
javascript:(/** @version 0.5.2 */function() {document.cookie='XDEBUG_SESSION='+'PHPSTORM'+';path=/;';document.location.reload();document.cookie='XDEBUG_SESSION='+''+';expires=Mon, 05 Jul 2000 00:00:00 GMT;path=/;';})()


Start profiler
javascript:(/** @version 0.5.2 */function() {document.cookie='XDEBUG_PROFILE='+'1'+';path=/;';})()


Stop profiler
javascript:(/** @version 0.5.2 */function() {document.cookie='XDEBUG_PROFILE='+''+';expires=Mon, 05 Jul 2000 00:00:00 GMT;path=/;';})()


Start tracer
javascript:(/** @version 0.5.2 */function() {document.cookie='XDEBUG_TRACE='+'1'+';path=/;';})()


Stop tracer
javascript:(/** @version 0.5.2 */function() {document.cookie='XDEBUG_TRACE='+''+';expires=Mon, 05 Jul 2000 00:00:00 GMT;path=/;';})()


В гугл хроме после добавления закладок используем ctrl+shift+O для перемещения их в удобное место - отмечаем на шифте их и перетягиваем в начало списка закладок
Ctrl+Shift+B отображает / скрывает панель закладок сверху страницы

-----

4. Настройка PHPStorm

Изображение


Изображение


File > Settings > PHP >
PHP language level: > выбираем соответствующую версию пхп (5.4)
Interpreter > кликаем на ...
PHP Home > корневой путь к пхп (E:\OpenServer\modules\php\PHP-5.4.17)
Debugger > Xdebug
Name > PHP (можно любое другое)

File > Settings > PHP > Servers >
Name: > домен создаваемого сайта
Host > домен создаваемого сайта (например: myblog.loc)
Port > 80

Желательно чтобы название сервера совпадало с хостом (так шторм по-умолчанию прописывает, если ранее не указали).
Указываем сами чтобы избежать вопроса о расположении файлов при запуске первой отладки.

Изображение


Изображение


-----

5. Открываем нужную страницу в браузере которую будем отлаживать
Нажимаем с закладок Start debugger (у меня start Xdebug, кому как удобно название)

Изображение


В phpstorm включаем Listen PHP Debug Connections (значок телефонной трубки)
В коде сайта определяем точку остановки > Ctrl + F8

Изображение


ОБНОВЛЯЕМ страницу в браузере, тем самым увидели остановку сайта и перехват штормом всех данных, которые получили до точки прерывания

Изображение


-----

6. Профилирование в phpstorm
Нажимаем с нужной страницы сайта Start profiler, обновляем, переходим по страницам сайта для отслеживания их работы.
Этим мы записали лог выполнения скриптов страниц в файлы > e:\OpenServer\userdata\temp\xdebug\cachegrind.out.[путь_к_странице]
где каждой странице создается файл.
Если обновить или зайти по уже ранее открытой странице сайта, обновится содержимое лог-файла.
Когда прекратили сбор информации нажимаем с закладок Stop profiler

Нажимаем в шторме
Tools > Analyze Xdebug Profiler Snapshot > выбираем файл профилирования
(E:\OpenServer\userdata\temp\xdebug\cachegrind.out.................)

Изображение


Изображение


Все файлы логов работы страниц будут храниться во временной папке ...\userdata\temp\xdebug до очередного запуска OpenServer (то есть сотрутся если нажать перезапустить сервер или остановить, запустить)
Но после остановки сервера файлы профилирования все еще сохраняются!

-----

7. Не забываем чтобы была указана необходимая версия PHP в OpServ-e > Настройки - Модули.


з.ы. За основу использовался материал отсюда > http://webdev-tales.ru/post/19072925255/php-denwer-xdebug-phpstorm

Изображение
Последний раз редактировалось Redee 25 дек 2013, 17:31, всего редактировалось 9 раз.

Аватара пользователя
Максим
Cейчас: в сети
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 01 окт 2013, 22:43

Побольше бы таких пользователей как вы :-)
Спасибо, думаю многим пригодится.

Аватара пользователя
Redee
Сообщения: 218
C нами: 3 года 5 мес

Непрочитанное сообщение Redee » 01 окт 2013, 22:53

пожалуйста пускай юзают, ценная инфа все же (когда-то не мог сразу настроить, убил не один день...), надо было сдублировать, переделав на современный лад так сказать )

flashbogdan
Сообщения: 3
C нами: 3 года

Непрочитанное сообщение flashbogdan » 13 ноя 2013, 23:52

Подскажите пожалуйста,
У меня не определяет Хдебаг вот на этом этапе
File > Settings > PHP >
PHP language level: > выбираем соответствующую версию пхп (5.4)
Interpreter > кликаем на ...
PHP Home > корневой путь к пхп (E:\OpenServer\modules\php\PHP-5.4.17)
Debugger > Xdebug
Name > PHP (можно любое другое)

В ПХП.ини все как описано

[Xdebug]
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
xdebug.auto_trace = 0
;xdebug.collect_includes = 1
;xdebug.collect_params = 0
;xdebug.collect_return = 0
;xdebug.collect_vars = 0
xdebug.default_enable = 0
;xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
;xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
;xdebug.dump.COOKIE = ""
;xdebug.dump.FILES = ""
;xdebug.dump.GET = ""
;xdebug.dump.POST = ""
;xdebug.dump.REQUEST = ""
;xdebug.dump.SERVER = ""
;xdebug.dump.SESSION = ""
;xdebug.dump_globals = 1
;xdebug.dump_once = 1
;xdebug.dump_undefined = 0
;xdebug.extended_info = 1
;xdebug.file_link_format = ""
xdebug.idekey = "PHPSTORM"
;xdebug.manual_url = "http://www.php.net"
;xdebug.max_nesting_level = 100
;xdebug.overload_var_dump = 1
;xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir="%sprogdir%/userdata/temp/xdebug/"
xdebug.profiler_output_name = "cachegrind.out.%H%R"
;xdebug.remote_autostart = 0
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
;xdebug.remote_log = "none"
;xdebug.remote_mode = "req"
xdebug.remote_port = 9000
;xdebug.show_exception_trace = 0
;xdebug.show_local_vars = 0
;xdebug.show_mem_delta = 0
;xdebug.trace_format = 0
;xdebug.trace_options = 0
xdebug.trace_output_dir = "%sprogdir%/userdata/temp/xdebug/"
;xdebug.trace_output_name = "trace.%H%R"
;xdebug.var_display_max_children = 128
;xdebug.var_display_max_data = 512
;xdebug.var_display_max_depth = 3


Опенсервер последний (4.8.9)
ПХП 5.5.4

Что не так?

Аватара пользователя
Максим
Cейчас: в сети
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 13 ноя 2013, 23:59

Видимо PHPStorm запущен не из закладок Open Server. Создайте закладку, думаю в этом проблема, поскольку автор не написал ничего про php.ini

flashbogdan
Сообщения: 3
C нами: 3 года

Непрочитанное сообщение flashbogdan » 14 ноя 2013, 00:58

Простите но я вас не понял.
ПХПШторм установлен отдельно.
Что значит запущен не из закладок Опенсервера?
Автор описал настройки ПХП.ини в п.2 туториала...

Так же ПХПШторм утверждает что модуль Хдебаг не подключен:
PHP version: 5.5.4

Loaded extensions: bcmath, calendar, Core, ctype, date, dom, ereg, filter, ftp, hash, iconv, json, libxml, mcrypt, mhash, mysqlnd, odbc, pcre, PDO, Phar, Reflection, session, SimpleXML, SPL, standard, tokenizer, wddx, xml, xmlreader, xmlwriter, zip, zlib

Аватара пользователя
Максим
Cейчас: в сети
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 14 ноя 2013, 01:07

flashbogdan писал(а):Что значит запущен не из закладок Опенсервера?


То и значит, что тут не понятного.

flashbogdan писал(а):Автор описал настройки ПХП.ини в п.2 туториала...


Настройки в файле php.ini это одно, я же речь вёл про совсем другое - про месторасположение этого файла. Поскольку автор ничего об этом не написал, то я думаю в своей инструкции он имел ввиду что запуск программы делается из закладки в Open Server.

flashbogdan
Сообщения: 3
C нами: 3 года

Непрочитанное сообщение flashbogdan » 14 ноя 2013, 01:17

Так и есть.
Добавил ПХПШторм в закладки и Хдебаг определился.
Спасибо!

Возможно ли настроить так что бы нормально запускалось с ярлыка?

Аватара пользователя
Максим
Cейчас: в сети
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 14 ноя 2013, 01:22

flashbogdan писал(а):Возможно ли настроить так что бы нормально запускалось с ярлыка?


Можете создать все стандартные параметры окружения PHP в переменных окружения Windows и тогда можно будет запускать с ярлыка (да и то только когда сервер запущен), однако в этом случае нужно будет прописать полные пути и Open Server потеряет портативность.

dima-f1
Сообщения: 2
C нами: 2 года 11 мес

Непрочитанное сообщение dima-f1 » 24 дек 2013, 13:38

Я расскажу как я пользуюсь дебагером в phpstorm в связке с Open Server, по моему так намного проще:
Моя конфигурация: Open Server 4.9.0, PhpStorm 6.0.3, Windows 7.
1. Открываем проект в шторме
2. Открываем файл проекта который необходимо продебажить
3. Ставим брейкпоинт в участке кода который будем дебажить
Изображение

4. Нажимаем на "Start Listen PHP Debug Connections" (ищем в подменю "Run" или на панели toolbar, иконка в виде трубки)
Изображение

5. Теперь переходим в браузер Firefox и устанавливаем расширение easy Xdebug
6. Открываем в Firefox страницу которую будем дебажить
7. Включаем панель дополнений если она еще не включена
8. Находим на панели дополнений иконки плагина easy Xdebug
Изображение

9. Запускаем xdebug сессию нажатием на жучка
Изображение

10. Нажимаем F5 на нашей странице
11. Если все прошло удачно в PhpStorm должно всплыть следующее окно
Изображение

12. Нажимаем Accept и все готово, можно дебажить

Теперь о php.ini. Для того чтобы это все заработало, в php.ini обязательно следим чтобы были следующие строки и в не закомментированном виде:
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000


Вернуться в «Полезные советы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость