/php-xdebug-proxy

PHP xdebug (dbgp) proxy server

Primary LanguagePHPMIT LicenseMIT

Внимание

Этот репозиторий устарел и больше не поддерживается. Новая реализация dbgp-прокси находится тут https://github.com/MadridianFox/xdebug-proxy


Xdebug Proxy

Прокси сервер для могопользовательской разработки на dev-сервере, который находится за NAT'ом.

Принцип работы

DBGp прокси делает одну простую вещь - в зависимости от idekey, который передан при отладке передаёт отладочные данные на тот ip с которого этот idekey был зарегистрированb и на тот порт, который указан при регшистрации.

Отладка

Чтобы работала отладка, необходимо настроить сервер, настроить машину разработчика и перед отладкой регистрировать свой idekey.

Настройка сервера

Настраиваем php так, чтобы он слал отладочные данные на localhost:9000.
Ставим и запускаем DBGp прокси так, чтобы он слушал 9000 порт.

Настройка машины разработчика

Настраиваем ssh соединение, чтобы пробрасывались порты. Важно выбрать себе уникальный порт. Например 9010. Пример настройки соединения через ~/.ssh/config:

Host my-site.dev
	HostName 11.22.33.44
	Port 22
	User developer
	LocalForward 9001 127.0.0.1:9001
	RemoteForward 9010 127.0.0.1:9010

Здесь порт 9001 проброшен для того чтобы зарегистрировать свой idekey, а на порт 9010 прокси будет слать отладочные данные.

Настраиваем IDE, чтобы для отладки слушала выбранный ранее порт.

Регистрация idekey

Перед началом отладки регистрируем свой idekey. Для регистрации ипользуем host = localhost и port = 9001. В самом idekey указываем свой порт. Например idekey = madridianfox

Отладка

Как обычно, чтобы запустить отладку надо передать параметр XDEBUG_SESSION_START=idekey.

Установка

Клонируем репозиторий в любую папку, выполняем install.sh.

cd /path/to/proxy

git clone git@github.com:MadridianFox/php-xdebug-proxy.git ./

./install.sh

systemctl enable dbgp

Управлять прокси можно как обычным systemd сервисом:

systemctl start dbgp # service dbgp start
systemctl stop dbgp # service dbgp stop
systemctl restart dbgp # service dbgp restart

Настройка

Есть всего 3 момента, которые вы можете поменять:

  • Пользователя и группу, от имени которых работает прокси
  • Порты, на которых прокси слушает xdebug и регистрацию
  • Предустановленные порты для заранее определённых idekey

Смена пользователя

По умолчанию прокси запускается от пользователя www-data.

Чтобы это изменить, надо отредактировать файлы

  • ./install.sh
  • ./bin/dbgp.service.template

Выполняем install.sh. Если до этого установка уже была выполнена, то надо перезагрузить systemctl:

systemctl daemon-reload

Смена портов и предустановленных idekey

По умолчанию прокси слушает xdebug на 9000 порту и регистрацию от пользователей не 9001 порту. Изменить это можно в файле ./config/config.php.

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