Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker的VSCode上的Xdebug包含PHP应用程序,在断点上没有停止_Php_Docker_Debugging_Visual Studio Code_Xdebug - Fatal编程技术网

Docker的VSCode上的Xdebug包含PHP应用程序,在断点上没有停止

Docker的VSCode上的Xdebug包含PHP应用程序,在断点上没有停止,php,docker,debugging,visual-studio-code,xdebug,Php,Docker,Debugging,Visual Studio Code,Xdebug,我事先很抱歉,我做了研究,我在这页上多次注意到同一个问题,我一直试图自己解决它,但我不太明白如何让它与我的具体配置一起工作 这是一个来自work的项目,其中包含以下Dockerfile: FROM php:7.3-apache RUN apt-get update && apt-get install -y acl unzip \ && rm -r /var/lib/apt/lists/* COPY --from=mlocati/php-extensio

我事先很抱歉,我做了研究,我在这页上多次注意到同一个问题,我一直试图自己解决它,但我不太明白如何让它与我的具体配置一起工作

这是一个来自work的项目,其中包含以下Dockerfile:

FROM php:7.3-apache
RUN apt-get update && apt-get install -y acl unzip \
    && rm -r /var/lib/apt/lists/*

COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/bin/
RUN install-php-extensions gd intl pdo_mysql soap xdebug zip

RUN echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
    && echo "xdebug.remote_port=10000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
    && echo "xdebug.remote_host=172.17.0.1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

WORKDIR /var/www/app

COPY --from=composer:1.10 /usr/bin/composer /usr/bin/composer

COPY docker/000-default.conf /etc/apache2/sites-enabled/000-default.conf
COPY docker/app.conf /etc/apache2/conf-enabled/z-app.conf
COPY docker/app.ini $PHP_INI_DIR/conf.d/app.ini

RUN ln -s $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
RUN a2enmod rewrite
它应该已经让Xdebug工作了,不是吗

我在VSCode上安装了php调试扩展,这是我的launch.json配置:

{
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 10000,
            "pathMappings": {
                "/var/www/app": "${workspaceFolder}"
            },
}
我启动了调试会话,但项目没有在断点处停止,所以我迷路了


我希望你们能帮助我,谢谢

1)使用
phpinfo()执行一些PHP脚本查看是否启用和配置了Xdebug。2) 
echo“xdebug.remote\u host=172.17.0.1”
每次构建docker映像时,此IP可能会有所不同。。。3) 如果一切正常——启用并收集Xdebug日志——它将显示它尝试连接的位置和响应。也许是你的防火墙(如果Xdebug方面一切都很好)@LazyOne我猜这些命令应该从docker容器内部运行?确切地说是哪些命令?对于#1——与您尝试调试的方式相同——只是检查一切是否正常。对于#2,您可以使用
host.docker.internal
而不是IP(但目前它仅适用于Mac&Windows;在Linux上,您需要在制作/启动docker映像时动态检测IP)。对于#3——Xdebug日志是通过相同的php.ini设置的。只需确保它将保存在将从外部访问的某个位置(以便您可以阅读日志)。另外,以防万一:连接到IDE/editor的是Xdebug。。这将是从docker内部到主机操作系统的连接。@LazyOne-hmm,这是我的困惑,这个php.ini必须是docker容器上使用的,对吗?当容器运行时,我如何使它写入我可以读取的地方?@LazyOne另外,我是否需要将Xdebug ip设置为与docker容器ip相同?