Я пытаюсь настроить закрепленную среду 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 под названием «Докер» с Host 127.0.0.1
Порт 8080
и отладчик Xdebug. Я установил сопоставление пути аналогично сопоставлению тома в операторе запуска docker.
в PHP-> Настройки отладки Я проверил, что я использую порт 9000
для входящих подключений, что я буду принимать внешние подключения и что я не буду игнорировать подключения с незарегистрированных серверов.
После этого я также создал новую конфигурацию удаленной отладки PHP под названием Docker. Сервер Docker, идентификатор сессии XDEBUG_IDEA
,
Я могу вызывать файлы PHP на контейнере, я могу подключиться к БД по ссылке … но по какой-то причине ничего не происходит, когда я пытаюсь начать сеанс отладки. Я пытался использовать куки (и да, я установил XDEBUG_IDEA
в качестве идентификатора сеанса в помощнике xdebug). Я пытался отправить XDEBUG_SESSION_START=XDEBUG_IDEA
как GET
…
Можете ли вы умные люди там сказать мне, что я пропустил?
Вы можете попробовать с этой конфигурацией. php-apache build предоставляет два метода для компиляции и включения модуля php.
Это лучше использовать docker-php-ext-enable xdebug
установить правильную конфигурацию файла.
FROM php:5.4-apache
# Enable and configure xdebug
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
RUN sed -i '1 a xdebug.remote_autostart=true' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_mode=req' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_handler=dbgp' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_connect_back=1 ' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_port=9000' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_host=127.0.0.1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_enable=1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
близко: xdebug.remote_connect_back=0
добавлять: xdebug.remote_host=192.168.0.102[your docker host/machine IP]