一个关于 docker 的 PHP 容器配置 DNS 后 xdebug 捕捉不到的问题

2020-12-16 14:35:11 +08:00
 datoubb

不配置 DNS 前 php.ini 配置成这样是没问题的

出现问题 1.php 容器访问数据库很慢 =>需要配置 DNS

2.配置 DNS 后,223.5.5.5 替代了 host.docker.internal,所以 xdebug 捕捉不到 =》 1.填入 DNS,无效果 2.通过 print_r($_SERVER['REMOTE_ADDR']); 获取 IP 填入,无效果

3.通过 docker inspect 容器 获取 IPAddress 填入,无效果

问: 要怎么解决?

2040 次点击
所在节点    PHP
12 条回复
GM
2020-12-16 14:51:19 +08:00
remote_host 指的是你运行 IDE 的那台机子的 IP,为啥填 223.5.5.5 呢?
datoubb
2020-12-16 15:08:53 +08:00
@GM 我就是都瞎试试
linoder
2020-12-16 19:10:18 +08:00
proxy 才需要公网啊 …… 你一个 upstream 设置外网 dns 干啥捏 另外 dns 可以设置多个
datoubb
2020-12-16 19:34:45 +08:00
@linoder 我现在是需要连接到云数据库,如果不设置 DNS,从容器内部去连接数据库得花 5 秒。加上 dns 之后马上就连上了
linoder
2020-12-16 19:53:55 +08:00
@datoubb 我理解 你应该换内网 dns 的话 会更快 …… 提个工单问问平台技术支持吧
ihipop
2020-12-16 19:55:28 +08:00
从你信息看,请填写 172.21.0.1
另外了解如下关键词 addhost host-gateway
dilu
2020-12-16 21:55:56 +08:00
如果是你本地开发环境的话,建议你在写死数据库的 host 这样就不用走 dns 了。docker-compose 支持的。
datoubb
2020-12-17 11:11:34 +08:00
@ihipop 这个我也试过了,也是捕捉不到
datoubb
2020-12-17 11:16:09 +08:00
@dilu 我数据库走的是腾讯云数据库
dilu
2020-12-17 12:52:42 +08:00
@datoubb 你在容器内直接写 host,不走 dns 不就行了。如果慢的话,strace 看一下系统调用,看看慢在哪里,再针对问题去解决。
ihipop
2020-12-17 18:39:59 +08:00
@datoubb 我就是这么配置为 host gateway 的,你捕捉不到看看 debug 的监听配置 path map 是否正确
datoubb
2020-12-21 18:06:43 +08:00
@dilu 确实奏效了,谢谢大佬

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/736009

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX