从 Docker 容器内部使用 XDebug 进行远程调试不起作用
2022-08-30 21:13:24
我正在尝试设置 Dockered AMP 环境,但无法让远程调试器正常工作。我的设置如下:
我有一个运行mysql的数据库容器,它就像一个魅力。我用下面的Dockerfile构建了一个Docker镜像'phpmysqli'
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”的服务器,其中包含主机,端口和调试器Xdebug。我设置的路径映射类似于 docker run 语句中的卷映射。127.0.0.1
8080
在 PHP->Debug 设置中,我检查了是否将端口用于传入连接,是否接受外部连接,以及是否不会忽略来自未注册服务器的连接。9000
在此之后,我还创建了一个名为Docker的新PHP远程调试配置。服务器是 Docker,会话 ID 是 。XDEBUG_IDEA
我可以在容器上调用PHP文件,我可以通过链接连接到数据库...但是由于某种原因,当我尝试启动调试会话时,没有任何反应。我尝试使用cookie(是的,我在xdebug助手中设置为会话ID)。我尝试发送为...XDEBUG_IDEA
XDEBUG_SESSION_START=XDEBUG_IDEA
GET
你们这些聪明的人能告诉我我错过了什么吗?