使用XDebug从Docker Container进行远程debugging不起作用
我试图build立一个dockered的AMP环境,不能让远程debugging器工作。 我的设置如下:
我有一个运行MySQL的数据库容器,它像一个魅力工作。 我用下面的Dockerfile构build了一个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已经启动并正在运行。
接下来,我使用Host 127.0.0.1
,Port 8080
和Debugger Xdebug在IntelliJ IDEA中设置了一个名为“Docker”的服务器。 我在docker run语句中设置类似于Volume映射的path映射。
在PHP-> Debug设置中,我检查了使用端口9000
进行连接,我将接受外部连接,并且不会忽略来自未注册服务器的连接。
在此之后,我创build了一个名为Docker的新PHP远程debuggingconfiguration。 服务器是Docker,会话ID是XDEBUG_IDEA
。
我可以调用容器上的PHP文件,我可以通过链接连接到数据库…但由于某种原因,当我尝试启动debugging会话时,什么都不会发生。 我尝试使用cookie(是的,我把XDEBUG_IDEA
设置为会话ID在xdebug助手)。 我试着发送XDEBUG_SESSION_START=XDEBUG_IDEA
作为GET
…
你能否聪明的人告诉我我错过了什么?
你可以试试这个configuration。 php-apache build提供了两种方法来编译和启用模块php。 使用docker-php-ext-enable xdebug
来设置正确的文件configuration更好。
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
- 在Docker中远程debugging节点应用程序
- 从Docker Windows容器远程debugging.Net Core控制台应用程序时,Visual Studio 2017不加载debugging符号
- 如何在Mac上使用JetBrains Rider开发和debugging运行在Docker中的.NET Core应用程序
- Xdebug忽略Netbeans中的Docker容器内创build的Php项目的断点
- 在使用Docker-Compose时,使用JPDA远程debugging将不会通过eclipse连接到Tomcat
- 连接到远程进程时,不会在VS Codedebugging模式下触发的断点
- 远程debuggingDocker中的节点9
- 如何确定为什么sigterm被发送到在mesos的docker容器内处理运行?
- Docker和XDebug不读断点VSCode