Docker编写和Xdebug在PhpStorm中不工作

xxslljrj  于 2023-02-11  发布在  PHP
关注(0)|答案(1)|浏览(161)

我尝试了很多方法来让Xdebug在Docker容器中工作,我接触到了以下资源:

我认为问题可能是我不理解端口,或者是调试器会话没有启动或识别。对于调试器会话,我还尝试安装了一个设置cookie的浏览器扩展。
我最终至少有了单独的容器,一个是启用了Xdebug的开发容器。

    • 停靠-编写. yml**
version: "3"
services:
  production:
    build: .
    ports:
      - "8000:80"
    volumes:
      - .:/var/www/html
  development:
    build: .
    ports:
      - "8080:80"
#      - "10000:80" also not working
    volumes:
      - .:/var/www/html
      - ./dev.php.ini:/usr/local/etc/php/php.ini
    • 停靠文件**
FROM php:7.4.0-apache

RUN pecl install xdebug \
  && docker-php-ext-enable xdebug
    • 开发程序php. ini**
xdebug.remote_enable=on
xdebug.remote_host=host.docker.internal
xdebug.remote_port=10000
xdebug.idekey=PHPSTORM
    • 本地主机:8080 phpinfo数据**

    • PhpStorm配置**

有什么想法吗?

xytpbqjk

xytpbqjk1#

在启动我的机器并使用@abestrad和@LazyOne的注解进行进一步调查后,没有更改任何内容,打开localhost:8080突然让调试工作停止在我设置的断点处。实际上,在编写问题之前,我已经尝试重新启动Docker桌面应用程序,可能当时我的配置处于错误状态。
但最终的解决方案是:正在重新启动电脑

小心

当然,我也试着在私人浏览器会话中打开它,但它不再工作了,这是因为特殊的cookie仍然设置在正常的浏览器存储中(cookie存储在我已经卸载的浏览器扩展中,或者在写问题之前尝试JetBrains Bookmarklets generator)。
让它每次工作的解决方案是添加以下内容:

xdebug.remote_autostart=1

从这里引用:
通常,您需要使用特定的HTTP GET/POST变量来启动远程调试(请参阅步骤调试)。当此设置设置为1时,即使GET/POST/COOKIE变量不存在,Xdebug也将始终尝试启动远程调试会话并尝试连接到客户机。

相关问题