Phpstorm Xdebug не работает с ddev
Я использую DDEV для разработки drupal8. У меня один и тот же проект на win10pro и на ubuntu18.04. На win10 я могу отладить в Phpstorm, на Ubuntu это не удается. Я уже часами искал.
Я уверен, что в папке проектов.ddev для параметра "xdebug_enabled" установлено значение true. В версии на Ubuntu я создал дополнительную конфигурацию, чтобы я мог получать журналы от Xdebug. Когда ssh попадает в контейнер веб-сервера, и я проверяю журнал xdebug в /var/log/xdebug.log, он показывает что-то вроде:
I: подключение к настроенному адресу / порту: host.docker.internal: 9000
E: Тайм-аут подключения к клиенту (ожидание: 200 мс).:-(
из контейнера я могу пропинговать host.docker.internal, IP-адрес host.docker.internal разрешается в 172.17.0.1
Когда я проверяю журналы из phpstorm в Ubuntu, он показывает: 2018-08-16 13:47:39,141 [2778275] DEBUG - il.connection.ServerConnection - Запуск сервера Xdebug на порту 9000
Ничто, кажется, не решает проблему. Я уже экспортировал свои phpstorm-настройки из win10(где работает отладка) и импортировал их в phpstorm на ubuntu, но он все еще не работает.
В phpstorm я не получаю всплывающее окно, показывающее "новое входящее соединение из xdebug" Xdebug работал в прошлом, но никогда при использовании ddev. В ddev он использует 2.6.0, а часть xdebug в phpinfo() показывает на ubuntu и win10 тот же вывод. Установленные xdebug настройки xdebug
помощь высоко ценится. Герт
1 ответ
Это была не проблема DDEV, это был действительно брандмауэр, вызывающий проблему. Я создал правило для UFW:
sudo ufw разрешает вход в docker0 с 172.17.0.0/24 по 172.17.0.1/32 порт 9000 комментарий xdebug
и правило для iptables:
sudo iptables -I INPUT -p tcp -m tcp --dport 9000 -j ПРИНЯТЬ sudo iptables -A INPUT -p tcp --dport 9000 -j ПРИНЯТЬВы также должны убедиться, что правило загружается при загрузке.
@rfay, спасибо за подсказку.