Phpstorm xdebug настройка


1. установить модуль xdebug (шаги установки MAC)
1.1.1. проверьте, какую версию PHP можно использовать с помощью php --ini (см. загруженный файл)
1.1.2. brew search xdebug
1.1.3. brew установить phpXX-xdebug
1.1.4. подробности: php -i | grep xdebug
1.2. перезагрузить сервер
1.3. конфигурация
1.3.1. sudo find /usr -name 'xdebug.so'
1.3.2. скопируйте путь точного, который вам нужен
example: /usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so
1.3.3. отредактируйте файл конфигурации, связанный с расширением, который должен быть автоматически добавлен в основной php.ini:
subl /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini
1.3.4. добавьте zend_extension, чтобы быть = путь, скопированный выше

 [xdebug]   zend_extension="/usr/local/Cellar/php56-xdebug/2.3.2/xdebug.so"   

Обычный файл должен иметь что-то вроде этого:

[xdebug] zend_extension="/usr/local/Cellar/php56/5.6.4/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"   xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler="dbgp" xdebug.remote_autostart=1 xdebug.profiler_enable=1 xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp" xdebug.idekey=PHPSTORM 

2. проверьте свою версию PHP
php --ini
3. настройка параметров IDE
предпочтения > языки и рамки > PHP >
3.1. установите уровень языка на правильную версию PHP этого проекта
3.2. установить интерпретатор (установить родительский каталог, где загружается каталог bin исполняемого файла PHP)
 3.2.1. нажмите кнопку… > нажмите кнопку + > другой локальный > установить PHP Исследуемый путь,
найти тип пути в терминале: $ which php
example: /usr/local/Cellar/php56/5.6.5/bin/php
4. перезапустить phpstorm
5. теперь позволяет заставить его работать
5.1. запустить > изменить конфигурацию > нажмите зеленую кнопку + в левой части > выберите b. веб-приложение php
5.2. name: anything example ur {имя приложения — отладчик}
5.3. server: localhost (browse > + > name: whatever | host: localhost или 127.0.0.1)
5.4. нажмите ОК
5.5. start url: ссылка главной страницы проекта ur: http://127.0.0.1:80/SomethingNew/



5.6. нажмите ОК
6. теперь установите точку прерывания и нажмите кнопку отладки

qaru.site

Конфигурация отладчика в PhpStorm

Настраивать отладчик мы будем на примере index.php – начинайте настройку именно с этой страницы, т.к. при запуске движков она обязательно отрабатывает.

Настройка отладчика в PhpStorm

В раскрывшемся окне первым делом жмем на значок «+» и выбираем PHP Web Application. Заполняем поле Name, выбираем ваш любимый браузер для разработки и в качестве Start URL указываем страницу сайта для стартового запуска. Обратите внимание, что указывается относительный путь.

Конфигурация PHP Web Application

Следующим шагом будет конфигурирование Server. Опять же жмем «+», заполняем Name, Host и Use path mappings. Заполняем все по аналогии со следующим скриншотом и жмем «ОК».

Настройка Servers

Аналогичным нажатием на «ОК» завершаем конфигурацию и PHP Web Application. Если все сделано верно, то можно приступать к пробному запуску. Для этого ставим Breakpoint (по-русски, «точка остановки») и жмем иконку запуска дебаггера.

Установка Breakpoint

Если все сделано верно, то вас перебросит в выбранный браузер, где начнет загрузку страница вида:


http://www.angarsky.loc/?XDEBUG_SESSION_START=10098.
Буквально сразу у вас замигает иконка PhpStorm на панели Windows. Переходим в PhpStorm и видим следующую картину.

Процесс отладки PHP кода

Теперь более подробно о том, что я отметил маркерами:

  1. Стек функций, который прошел скрипт до нашего Breakpoint’а.
  2. Список переменных, доступных в данной функции в данный момент исполнения кода.
  3. Список переменных для отслеживания. Сюда вы можете перетаскивать все необходимые переменные из второй колонки, значения которых необходимо отследить.
  4. Кнопка остановки отладчика.
  5. Кнопки для навигации в коде: переход на следующую строку кода, переход к следующей точке остановки. Однако я рекомендую работать с горячими клавишами – о них чуть ниже.
  6. Указатель строки текущего состояния отладчика.

Чтобы выйти из состояния отладки нажмите «F9». Можете перейти обратно в браузер и убедиться, что страница сайта загрузилось как обычно. Если обновить страницу, то опять сработает дебаггер – это будет происходить до тех пор, пока вы не отключите процесс отладки.

Управление процессом отладки

Ниже приведены комбинации горячих клавиш, необходимых для быстрой отладки кода:

  • F7 – переход к следующему шагу кода, выполняя заход во все встречающиеся функции.
  • F8 – переход к следующей строке кода, минуя заход в функции.
  • F9 – переход к следующему Breakpoint’у или завершение процесса отладки при их отсутствии.
  • Shift + F8 – выход из текущей функции.

Для дальнейшего наглядного примера я поставил Breakpoint в своей кастомной функции, отвечающей за изменение комментариев.

Отладка кода в PhpStorm

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

Собственно сейчас отладчик находится на строке 15. Если «шагать» по коду, используя клавишу F7, то вы через два шага вы окажетесь в функции drupal_get_path()


. При использовании клавиши F8 функция drupal_get_path() будет выполнена в фоне, а вы сразу окажетесь на строке 18. При нажатии комбинации Shift + F8 вы выйдете из текущей функции и окажитесь в theme() на 1222 строке (см. стек функций). Таким образом, для быстрой отладки необходимо владеть всеми этими приемами.

Отладка PHP ошибок

Любой разработчик рано или поздно сталкивается с ошибками в коде. Серьезные ошибки Drupal выводит в сообщениях статуса, предупреждения (PHP warnings) логирует в журнале. Именно для устранения ошибок нам и пригодится отладчик. Для начала выясняем, на каком этапе появляется ошибка (название функции и номер строки) и устанавливаем Breakpoint в данное место. Запускаем отладчик и начинаем поиск ошибки:

  • проверяем все переменные, массивы, объекты;
  • анализируем их изменение в теле функции;
  • переходим на вышестоящие в стеке функции (по клику мыши названию функции в нижнем левом окне по), смотрим, какие данные передаются в текущую функцию;
  • расстанавливаем новые Breakpoint’ы, если это необходимо.

Устранение ошибок может занять как от нескольких секунд, так до нескольких часов, особенно, если разработчик слабо знаком с архитектурой Drupal. Навык отладки приходит со временем – я, как бы хотел, не смогу объяснить в рамках данного поста все нюансы. Однако дам несколько советов, которые, возможно, позволят сэкономить несколько минут:


  • при установке Breakpoint на массив – размещайте его на строке с первым элементом массива, иначе он не отработает;
  • используйте условные Breakpoint’ы – «Edit» в раскрывающемся меню по левому клику мышки (например, условие «$variables[‘id’] == 2»);
  • изменяйте файлы ядра, только если у вас подключен Git (или другая система контроля версий) для того, чтобы после отладки без проблем откатить ядро в первозданный вид;
  • для быстрого перехода в функцию используйте клик мышкой по ее названию с зажатой клавишей Ctrl.

Собственно на этом теория заканчивается и вам пора переходить к практике. Еще раз повторюсь, не переживайте о предстоящем затраченном времени – умение работать с отладчиком вам не раз еще пригодится. Надеюсь, материал окажется хоть для кого-то полезным – уведомьте меня тогда, пожалуйста, об этом в комментариях!

www.angarsky.ru

На данный момент, PhpStorm – одна из лучших IDE для разработки на языке PHP, которая предоставляет множество возможностей для разработчика, такие как запуск PHP-скриптов, благодаря возможности подключения внешнего интерпретатора PHP и отладку через расширение Xdebug.


В этой статье мы рассмотрим возможность подключения интерпретатора PHP, отладчика Xdebug к PhpStorm и использование встроенного в IDE web-сервера.

Начнем с установки отладчика Xdebug в PHP.

Установка Xdebug

Первым делом скачаем и установим сам интерпретатор PHP по ссылке: http://php.net/downloads.php

Далее нужно произвести начальную настройку PHP и прописать в переменную окружения PATH путь к интерпретатору. Чтобы не повторяться, весь необходимый порядок действий мной описан в этой статье: Установка Composer и снятие ограничения количества обращений к GitHub

Теперь можно перейти к установке отладчика Xdebug, для которого существует специальный помощник, значительно упрощающий процедуру установки. Для его использования перейдем по ссылке: https://xdebug.org/wizard.php

На этой странице, необходимо ввести в поле ввода информацию об установленном PHP-интерпретаторе, которая генерируется с помощью PHP-функции phpinfo(). Вводить нужно весь скопированный текст со страницы.

Или, введя в консоль команду php -i, которая генерирует информацию о PHP.

Копируем полученную информацию, нажимаем кнопку Analyse my phpinfo() output и получаем инструкцию по установке Xdebug.

В зависимости от вашей версии PHP и пути установки инструкция может отличаться от моей:

  • Скачиваем библиотеку Xdebug для PHP версии 5.6.19 по ссылке: php_xdebug-2.4.0-5.6-vc11-nts.dll
  • Перемещаем её в папку C:phpext
  • В файл C:phpphp.ini находим секцию Dynamic Extensions и добавляем следующую строку:
    zend_extension = C:phpextphp_xdebug-2.4.0-5.6-vc11-nts.dll

Подключение интерпретатора PHP к PhpStorm

Теперь перейдем в PhpStorm и откроем настройки комбинацией клавиш Ctrl+Alt+S.

Далее, в секции Languages & Frameworks выберем пункт PHP. В этой секции необходимо назначить интерпретатор для IDE в пункте Interpreter нажав на кнопку

В открывшемся окне, в поле Name вводим любое имя для удобства дальнейшей идентификации, например: PHP 5.6.11.

В поле PHP executable указываем путь до интерпретатора, например: C:phpphp.exe. Обратите внимание на появившуюся версию PHP и дебагера, что свидетельствует о правильности установки.

Чтобы убедиться в том, что правильно отрабатывает подключенный интерпретатор PHP, создадим в PhpStorm новый проект, добавим к нему файл index.php и запишем в этот файл, например, функцию var_dump([ 1, 2, 3 ]) с переданным в неё массивом.

Нажав правой кнопкой мыши на этом файле, выберем Open in Browser -> Default.

На странице мы видим характерный вывод var_dump(), который генерируется с помощью Xdebug. И, если посмотреть на заголовки ответа через консоль разработчика, то мы увидим, что всё работает верно:

server:PhpStorm 2016.1  X-Powered-By:PHP/5.6.19  

Начальная настройка Xdebug и установка его под линукс описана в статье Установка модуля Xdebug для PHP под Ubuntu Linux

Работа с отладчиком Xdebug в PhpStorm

Прежде чем приступит к отладке PHP-скриптов с помощью Xdebug произведем необходимую настройку в файле php.ini. В секции Dynamic Extensions после подключения расширения Xdebug добавим следующие настройки:

xdebug.remote_enable=1  xdebug.remote_port=9000  xdebug.profiler_enable=1  xdebug.profiler_output_dir="c:phptmp"

Теперь зайдем в PhpStorm и откроем настройки. Перейдем в Languages & Frameworks -> PHP -> Debug. В секции Xdebug убедимся, что установлены следующие настройки:

Debug port: 9000  Установлен флажок Can accept external connections

Чтобы проверить, что все действия были проведены верно, добавим в уже имеющийся в проекте файл index.php следующий код:

<?php  $arr = [ 1, 2, 3 ];  var_dump( $arr );

И поставим точку остановки на переменной $arr.

Теперь запустим отладку этого скрипта, нажав правую кнопку мыши и выбрав пункт Debug ‘index.php’. Если все было сделано правильно, то в PhpStorm появится вывод дебага, как показано на скриншоте.

В итоге, мы получили мощный и удобный инструмент для отладки PHP-скриптов с подключенным интерпретатором PHP, а также возможность запускать скрипты через встроенный в PhpStorm локальный web-сервер.

bogdanov-blog.ru


Установка xDebug

Ставим xdegub на виртуальную машину, предварительно подключившись к ней по ssh через vagrant (vagrant ssh). Команда для установки xdebug:

sudo apt-get install -y php5-xdebug

При установленном xdеbug информация о нём будет присутствовать в php.ini, проверим, так ли это:

 $ php -r "var_dump(phpinfo());" | grep xdebug /etc/php5/cli/conf.d/20-xdebug.ini xdebug xdebug support => enabled xdebug.auto_trace => Off => Off xdebug.cli_color => 0 => 0 xdebug.collect_assignments => Off => Off xdebug.collect_includes => On => On ... 

Настройка xDebug php.ini

Host, port и идентификационный номер нужно прописать одинаковые и в настройках php.ini, и в настройках phpstorm. 

 sudo vim /etc/php5/cli/conf.d/20-xdebug.ini

Конфиг /etc/php5/cli/conf.d/20-xdebug.ini инклудится в php.ini. Поэтому добавляем в этот файл следующие настройки для xdebug (они будут задействованя как для php cli так и для fpm):

 xdebug.remote_autostart = on xdebug.remote_enable = on xdebug.remote_connect_back = on  xdebug.remote_host = 192.168.15.1  xdebug.remote_port = 9003 xdebug.remote_handler = dbgp xdebug.idekey = wi-backend 

Где:

  • xdebug.remote_autostart — самая важная строка, отвечает за autostart.
  • remote_ host — это реальный Ethernet ip вашей машины (посмотреть можно в ifconfig — vboxnet0)
  • remote_port — задаём так же как и в настройках IDE
  • xdebug.idekey — такое же название как и в IDE.

Настройка xDebug phpstorm

Открываем меню File -> Settings.

Настраиваем PHP -> Servers.

Настраиваем как на скриншоте, задавая своё имя для приложения. Там где vagrant path — указываем путь до проекта внутри виртуальной машины vagrant. Путь может как совпадать с путём на основной машине, так может и отличаться и монтироваться в другую папку.

Xdebug phpstorm настраиваем PHP -> Servers

Настраиваем DBGp proxy

Тут всё должно быть понятно, указываем IDE key и Port такие же, как задали в php.ini. В качестве Host указываем ip виртуальной машины, тот что в файле Vagrantfile.

xDebug PHPStorm настройка DBGp proxy для дебага Vagrant

Использование xDebug c PHPStorm

В IDE PHStorm выставляем breakpoints, кликая возле строчек кода. Далее дебаггер будет делать остановку на этих точках.

xDebug phpstorm расставляем breakpoints для дебага

Запустив в браузере wi-backend.local (хост на vagrant-машине), дебаггер срабатывает для него и останавливается на точках останова (breakpoints). Дебаггер срабатывает, только если он включен в IDE (см. скриншот) — Start/Stop listening for PHP Debug Connections.

То же самое c xDebug для cli.

Выполнение cli-скрипта без xDebug:

 bin/cli.php test

Выполнение cli-скрипта с xDebug. Нужно передавать ENV-параметр PHP_IDE_CONFIG:

 PHP_IDE_CONFIG="serverName=wi-backend.local" bin/cli.php test

В нижней части IDE PHPStorm открывается дебаггер, где видны значения всех переменных, а также, что наиболее важно, цепочки вызов с возможностью перехода к каждому вызову.

jeka.by

Думаю, нет нужды объяснять про такой важный инструмент PHP-разработчика, как Xdebug. Знал о нём и я. Только вот руки всё никак не доходили, что бы просто взять и попробовать. Длилось это больше года. А в один прекрасный момент таки испробовал и очень доволен.

Для начала необходимо установить сам Xdebug. На убунте это довольно просто, на макинтоше — тоже. Напишу одну команду под другой, чтобы не растягивать (предполагается, что на маке используется MacPorts)

Ubuntu/Debian:

 sudo apt-get install php5-xdebug 

Mac:

 sudo port install php5-xdebug 

В операционной системе Windows всё может зависеть от ситуации. У меня, например, используется XAMPP, и заветная php_xdebug.dll обнаружилась в директории с остальными расширениями, оставалось только раскоментировать его в php.ini

отладка

Далее необходимо добавить в php.ini следующую секцию (если её там нет, конечно):

 [XDebug] zend_extension = "/path/to/php_xdebug.dll" xdebug.remote_enable = 1 xdebug.remote_port = 9000 xdebug.profiler_enable = 0 xdebug.max_nesting_level = 250 

Последняя строка важна для разработчиков, использующих Symfony2 либо шаблонизатор twig. По умолчанию параметр, задающий максимальную вложенность функций, равен 100, и вместе с вышеупомянутыми инструментами (и не только с ними, естественно) будет часто приводить к ошибке вида Fatal error: Maximum function nesting level of ‘100’ reached, aborting!

А с PhpStorm сделаю комикс с картинками. Всё просто, но нужно знать эту последовательность 🙂 Сначала в Settings → PHP устанавливаем интерпретатор. IDE довольно умная, так что потребуется только нажать на кнопку с тремя точками.

phpstorm-xdebug-1

Там же недалеко в Settings → PHP → Servers создаём сервер.

phpstorm-xdebug-2

После перемещаемся в Run → Edit Configurations

phpstorm-xdebug-3

… и создаём свой PHP Web Application

phpstorm-xdebug-4

Всё готово. Ставим с коде точку остановки (мышкой, рядом с нумерацией строк исходников) и нажимаем зелёного жука. Любуемся внутренностями переменных 🙂

phpstorm-xdebug-5

P.S.: Если в php.ini ещё добавить строку, как показано ниже, то на макинтошах будут в шторме открываться ссылки на файлы из трейсов ошибок и из симфони-профайлера. За Ubuntu и прочие линуксы пока не скажу, надо пробовать.

 xdebug.file_link_format = "phpstorm://open?file=%f&line=%l" 

morontt.info

PhpStorm содержит удобные инструменты для запуска и отладки php-приложения. Для их использования нужно выполнить определенные настройки проекта.

Первое, что нужно сделать, это настроить сервер. Для этого идем в меню Run -> Edit Configurations… В открывшемся диалоге Run/Debug Configurations нажимаем на + (зеленый плюс) слева вверху и выбираем PHP Web Application. Это позволит использовать для запуска и отладки локальный сервер (предполагаем, что он уже настроен). Далее в правой части:

  1. Заполняем поле Name (произвольное имя)
  2. Нажимаем на … (троеточие) правее поля Server. Откроется новый диалог Servers. Здесь снова нажимаем + (зеленый плюс) и в правой части заполняем:
    1. Поле Name (произвольное имя)
    2. Host — хост, настроенный для локального сайта
    3. Port— если не меняли, оставляем по умолчанию 80
    4. Debugger — выбираем Xdebug или Zend Debugger
    5. Apply и OK
  3. Start URL — если корневая директория сайта, оставляем / или вписываем нужный путь
  4. В поле Browser можно выбрать браузер, в котором будет запускаться приложение
  5. В Before launch можно настроить дополнительные шаги перед запуском: сторонние скрипты, билдеры и т.д.
  6. Apply и OK

После этого можно запустить проект выбрав Run -> Run… 

Для запуска приложения в режиме отладке нужно дополнительно установить и настроить debugger.

Для установки Xdebug нужно его скачать. Сделать это можно по ссылке https://xdebug.org/download.php. Здесь главное правильно выбрать версию, иначе Xdebug просто не запуститься. Выбирать нужно исходя из установленной версии PHP, разрядности системы и потокобезопасности. В моем случае это была PHP 7.0 VC14 TS (64 bit).

Сохраняем скаченный файл в папку с расширениями для php (что-то вроде C:Program Filesphpext) и добавляем в php.ini:

Это минимальные настройки, необходимые, чтобы Xdebug заработал в связке с PhpStorm. Перезапускаем сервер и проверяем phpinfo(), там должна появится секция xdebug. Если не появилась, значит скорее всего скачали не ту версию Xdebug.

Теперь, чтобы запустить приложение в режиме отладки, нажимаем Run -> Start Listening for PHP Debug Connections, ставим точки остановки или отмечаем Run -> Break at first line in PHP script, и запускаем Run ->Debug…

Откроется браузер со стартовой страницей приложения, но загрузка не закончится. Теперь если вернутся в PhpStorm, там будет открыта Debug панель с отладочной информацией.

blog.rc21net.ru

Содержание

  • Установка Xdebug на виртуальный сервер
  • Настройка Xdebug в PHPStorm
  • Не работает Xdebug, что делать?

Установка Xdebug на виртуальный сервер

Устанавливать Xdebug будем на нашу серверную ubuntu, которые мы установили из прошлых статей на VirtualBox.
Итак для начала логинимся на сервер по ssh, запускаем PuTTY, вводим команду установки.

После установки открываем файл с настройками Xdebug на редактирование /etc/php5/conf.d/xdebug.ini

и добавляем следующие строки

Вкратце пробежимся по каждому параметру:

  • xdebug.remote_enable — параметр, позволяющий устанавливать Xdebug контакт с дебаг клиентом, который прослушивает порт и хост, установленные параметрами xdebug.remote_host и xdebug.remote_port.
  • xdebug.remote_host — ip адрес хоста, с которого будет запущен дебагер, проще говоря, это — ip адрес вашей машины, на которой у вас установлен phpstorm.

Перезапускаем apache.

На этом наши настройки на сервере закончены, теперь отправляемся в PHPStorm.

Настройка Xdebug в PHPStorm

Переходим на вкладку Run/Debug Configurations через меню Run → Edit Configurations. Жмем на кнопку add.png, из выпадающего списка выбираем PHP Web Application.
xdebug_add_new.png
В окне настроек сразу присваиваем имя дебагеру и указываем, что дебагер будем запускать из FireFox.
xdebug_settings_step_1.png
Теперь необходимо выбрать сервер, который позволит PHPStorm связываться с Xdebug. По кнопке add_server.png откроется окно Servers, на котором добавляем свой собственный сервер с помощью кнопки add.png. Даем имя серверу, в поле Host вводим localhost, в поле Port — 9000 (порт по умолчанию в Xdebug).
xdebug_settings_step_2.png
Затем необходимо проверить валидность введенных параметров с помощью кнопки Validate remote environment. Появится новое окошко, в нем выбираем уже созданный сервер для синхронизации файлов (в нашем случае ubuntu-test)
xdebug_settings_step_3.png
и переходим в его параметры по кнопке add_server.png
Немного подкорректируем настройки. На вкладке Connection изменяем Web server root URL с ip адреса на доменное имя проекта.
xdebug_settings_step_4.png
Затем переходим на вкладку Mappings и указываем соответствие путей и папок, где непосредственно лежит Drupal проект.
xdebug_settings_step_5.png
Применяем настройки и возвращаемся в окно Validate Remote Environment, проверяем валидность введенных параметров. Если у вас сообщение подобно этому, то все сделано правильно.
xdebug_settings_step_6.png
Закрываем окно и возвращаемся в окно Серверы. Ставим галочку Use path mappings и дописываем путь к корневой папки сайта на сервере.
xdebug_settings_step_7.png
Подтверждаем изменения и возвращаемся в окно Run/Debug Configurations. Здесь изменяем url сайта в поле Start Url на доменное имя, т.е. для devsite — http://devsite
Закрываем окно, подтвердив изменения, ставим точку останова, например, в index.php и запускаем дебаггер через меню Run → Debug ‘devsite-xdebug’ (Debug + имя сервера для дебага) или по кнопке run_debug.png. Если все настройки введены верно, выполнения скрипта остановится на том breakpoint, который был установлен.
xdebug_settings_step_8.png

Не работает Xdebug, что делать?

Что делать, если вдруг вы обнаружили, что когда-то удачно настроенный Xdebug перестал останавливать скрипт на брейкпоинтах. После долгих и упорных поисков ничего не обнаружено, validation script прекрасно отрабатывает и показывает следующую картинку
xdebug_settings_step_6.png
Remote host: 192.168.0.104 — это ip адрес, по которому Xdebug связывается с вашей локальной машиной. Обратите внимание(!), что PHPStorm показывает те настройки, которые выставлены параметром xdebug.remote_host. В данной ситуации выполним следующее:

  • идем в конфиг Xdebug (/etc/php5/conf.d/xdebug.ini)
  • и дописываем параметр

    Данный параметр будет игнорировать xdebug.remote_host и искать ip адрес машины, запустившей дебаг процесс, в переменной $_SERVER[‘REMOTE_ADDR’].

  • Перезапускаем apache.
  • Ставим брейкпоинт и запускаем дебагер.

Если скрипт остановился на нужном брейкпоинте — значит, проблема в неверно указанном параметре xdebug.remote_host и самое время проверить ip локальной машины.
Сделать это можно несколькими способами. Самый распространенный — запустить командную строку cmd и набрать ipconfig. Или же, раз уже запущен дебагер, посмотреть содержимое переменной $_SERVER[‘REMOTE_ADDR’].
remote address

Итак, выяснили, что ip адреса отличаются. Корректируем параметр xdebug.remote_host и комментим строку с xdebug.remote_connect_back=1 (либо выставляете значение 0). Если же у вас ip адрес формируется динамически (как в моем случае), то можно вообще оставить параметр xdebug.remote_connect_back=1, при условии, что кроме вас никто не имеет доступ к этому серверу. В противном случае, любой сможет начать дебаг сессию, даже если его ip не совпадает с параметром xdebug.remote_host.

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

nightdevel.ru

Настройка отладки PHP в OpenServer

Первым делом давайте включим расширение Xdebug в файле конфигурации PHP (php.ini). Для этого идём в меню OpenServer -> Дополнительно -> Конфигурация -> PHP.

Конфигурация PHP в OpenServer

Здесь нам нужно найти секцию [Xdebug]. Как правило, она находится в конце этого файла.
Здесь нам нужно раскомментировать (или просто добавить) строки:

zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll" xdebug.remote_enable = 1 xdebug.remote_port = 9000 xdebug.remote_handler = "dbgp" xdebug.remote_connect_back = 1 xdebug.idekey = "PHPSTORM"

Должно получиться так:
Включение Xdebug в php.ini

После чего нужно сохранить файл (CTRL + S) и перезапустить веб-сервер.
Перезапуск OpenServer

На этом настройка веб-сервера для отладки завершена.

Настройка отладки в PHPStorm

Теперь нам нужно настроить отладку в PHPStorm. Первым делом идём в настройки:
File -> Settings

Здесь в левом меню выбираем:
Languages & Frameworks -> PHP -> Debug

Прокручиваем правую часть до секции Xdebug, и задаём следующие настройки:

  • Debug port: 9000
  • Force break at first line when no path mapping specified: выключено
  • Force break at first line when a script is outside the project: выключено

Настройки отладки в PHPStorm

Сохраняем изменения, нажав на “OK”.

Теперь в верхней правой части программы жмём на такую выпадающую менюшку:
Выпадающее меню с конфигурацией для отладки

И жмём “Edit Configuration”.

В появившемся окне в левом верхнем углу жмём на плюсик и выбираем “PHP Remote Debug”.
PHP Remote Debug

Задаём настройки:

  • Name: XDebug

И нажимаем справа от пункта “Servers” на три точки:
Servers for debug

В появившемся окне снова жмём на плюсик, и у нас в списке появляется новый сервер. Давайте зададим для него следующие настройки:

  • Name: localhost
  • Host: localhost
  • Port: 80
  • Debugger: Xdebug

Сервер для отладки

Сохраняем нажатием на “OK” и завершаем заполнять ранее открытую настройку. А именно:

  • Ide key (session id): PHPSTORM

И убеждаемся, что в “Servers” указан только что созданный нами “localhost”.
Конфигурация для отладки в PHPStorm

Сохраняем, нажав “OK”. На этом конфигурация PHPStorm для отладки PHP-приложений с помощью Xdebug завершена.

Настройка отладки в браузере Google Chrome

Дело осталось за малым – нужно только установить расширение для Chrome под названием Xdebug helper.

Заходим в Chrome и переходим по адресу: Xdebug helper

Напротив расширения Xdebug helper жмём кнопку “Установить”.

После того, как расширение установлено в верхнем правом углу Chrome появится значок жучка. Жмём по нему правой кнопкой мыши и нажимаем “Параметры”.
Меню Xdebug helper

Здесь в пункте IDE key в выпадающем меню выбираем PhpStorm.

Параметры Xdebug helper

И нажимаем “Save”.

На этом предварительная настройка завершена.

webshake.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.