Я пользуюсь двумя основными схемами отладки в phpStorm с помощью xDebug.
- Для работы над собственными проектами я включаю автозапуск отладки из браузера, за который отвечает опция xDebug.remote_autostart = 1 в php.ini. Это значит, что отладка сайта запускается в тот момент, когда я перезагружаю страницу в браузере.
- В практике корпоративной разработки часто требуется, чтобы другие сотрудники могли просматривать ваши наработки со своих компьютеров в локальной сети. При этом вам нужно продолжать заниматься своей работой и, в том числе, отлаживаться. Вот в этом случае опцию xDebug.remote_autostart необходимо отключить, поскольку все обращения к любому из ваших локальных сайтов при включённой отладке в phpStorm, будут запускать отладку независимо от сайта, к которому происходит обращение. Другими словами, с этой опцией xDebug не делает различий между доменами и считает, что запросы идут с одного IP.
Для того, чтобы phpStorm узнавал о запуске отладочной сессии после отключения xDebug.remote_autostart, необходимы плагины к браузеру, которые прописывают в куках отлаживаемого сайта значение XDEBUG_SESSION равное PHPSTORM. Без этой куки отладка запускаться не будет. Таким образом, мы избегаем ложных запусков отладки при любых обращениях к вашему вебсерверу извне.
Стоит отметить, что для работы по обоим схемам phpStorm не использует настройки секции Settings | Languages & Frameworks | PHP | Debug | DBGp Proxy. Там могут стоять любые значения. Важно лишь правильно указать порт в секции Settings | Languages & Frameworks | PHP | Debug и разрешить внешние подключения. А также, само собой, правильно прописать секцию xDebug в настройках php.ini.