0

Отладка сервера за NAT-ом

Если прямого доступа со стороны веб-сервера к вашему компьютеру нет, то описанная ранее схема работать не будет. Но если у вас есть доступ по SSH к веб-серверу, то поможет SSH туннель с вашей машины на сервер, в котором нужно прокинуть порт отладки к вам.

Настройка Xdebug

Перенастроем Xdebug, чтобы он смотрел на свой локальный хост (путь к файлу с настройками для Xdebug у  вас может отличаться, также можно добавить параметры xdebug в php.ini, но это не тру):

Не забываем перезагрузить веб-сервер, чтобы была прочитана новая конфигурация.

SSH Туннель (putty)

Разберем прокладку туннеля, на примере настройки SSH-клиента Putty:

xdebug-remote-nat-putty-tunnel

Указываем тип направления (direction) — Remote, порт/хост назначения (Destination) — настроенный в IDE и порт/хост отправки (Source) — настроенный в Xdebug на сервере.

Сохраняем настройки и открываем сессию SSH (с уже открытой сессией туннель будет работать сразу).

Для чистоты эксперемента проверим, есть ли соединение теперь.

Запустим в IDE отладчик и проверим телнетом соединение по порту отладки с сервера на нашу машину:

Если соединение рвется или выдается сообщение Connection refused, проверьте запущен ли отладчик в IDE, а также настройки файрвола и антивирусов, скорее всего они блокируют неизвестные порты.

Nota bene

Если по данной схеме на одном сервере работают несколько человек, то при запуске отладчика Xdebug будет подключаться к первому попавшемуся порту, не факт что вашему. Для решения этой проблемы, нужно указать разные порты для разных виртуальных хостов. Сделать это можно переопределив в директивах apache (vhost.conf, .htaccess) параметр xdebug.remote_port.

Соответственно настроив разные SSH-туннели.

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

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