Я пытаюсь настроить докционированную среду AMP и не могу заставить удаленный отладчик работать. Моя настройка такова:
У меня есть контейнер базы данных, в котором работает mysql, который работает как шарм. Я создал изображение Docker 'phpmysqli' со следующим Dockerfile
FROM php:apache
RUN docker-php-ext-install mysqli mbstring
# zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
RUN pecl install xdebug
RUN echo 'zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so' >> /usr/local/etc/php/php.ini
RUN touch /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_enable=1 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_autostart=0 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_connect_back=1 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_port=9000 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_log=/tmp/php5-xdebug.log >> /usr/local/etc/php/conf.d/xdebug.ini;
RUN echo 'date.timezone = Europe/Berlin' > /usr/local/etc/php/conf.d/date.ini
Я звоню
docker run --rm -ti --name web -p 127.0.0.1:8080:80 -v /path/to/projects:/var/www/html --link db:db phpmysqli
После этого phpinfo соответственно php -i показывает, что xdebug 2.3.2 запущен и работает.
Далее я настраиваю сервер внутри IntelliJ IDEA с именем "Docker" с хостом 127.0.0.1
, портом 8080
и отладчиком Xdebug. Я настраиваю сопоставление пути, аналогичное отображению томов в инструкции запуска docker.
В настройках PHP- > Debug я проверил, что для входящих подключений я использую порт 9000
, что я буду принимать внешние подключения и что я не буду игнорировать подключения с незарегистрированных серверов.
После этого я создал новую конфигурацию удаленной отладки PHP под названием Docker. Сервер - Docker, идентификатор сеанса - XDEBUG_IDEA
.
Я могу вызывать файлы PHP в контейнере, я могу подключиться к db по ссылке... но по какой-то причине ничего не происходит, когда я пытаюсь запустить сеанс отладки. Я попытался использовать cookie (и да, я установил XDEBUG_IDEA
как идентификатор сеанса в xdebug helper). Я попытался отправить XDEBUG_SESSION_START=XDEBUG_IDEA
как GET
...
Можете ли вы умные люди сказать мне, что я пропустил?