为了账号安全,请及时绑定邮箱和手机立即绑定

Docker Compose 和 Xdebug 无法在 PhpStorm 中工作

Docker Compose 和 Xdebug 无法在 PhpStorm 中工作

PHP
慕码人2483693 2023-06-24 15:41:22
我尝试了很多方法,试图让 Xdebug 在 Docker 容器中工作。我认为问题要么是我不理解的端口,要么是调试器会话未启动或识别。对于调试器会话,我还尝试安装一个设置 cookie 的浏览器扩展。我最终至少拥有了单独的容器,其中一个作为启用了 Xdebug 的开发容器。docker-compose.ymlversion: "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.iniDockerfileFROM php:7.4.0-apacheRUN pecl install xdebug \  && docker-php-ext-enable xdebugdev.php.inixdebug.remote_enable=onxdebug.remote_host=host.docker.internalxdebug.remote_port=10000xdebug.idekey=PHPSTORM本地主机:8080 phpinfo 数据PhpStorm 配置有任何想法吗?
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

启动我的机器以使用 @abestrad 和 @LazyOne 的注释进一步调查后,无需更改任何内容,打开 localhost:8080 突然在我设置的断点处停止,让调试工作。实际上,在写问题之前我已经尝试过重新启动 Docker 桌面应用程序,也许那时我的配置处于错误状态。

但最终的解决办法是:重新启动电脑

小心

可以肯定的是,我也尝试在私人浏览器会话中打开它,但它不再工作了。这是因为特殊的 cookie 仍然设置在普通的浏览器存储中(cookie 是从我已经卸载的浏览器扩展中存储的,或者是在编写问题之前尝试使用 JetBrains Bookmarklets生成器存储的 cookie)。

让它每次都能工作的解决方案是添加以下内容:

xdebug.remote_autostart=1

从这里引用:

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


查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信