我正在Docker容器中运行php-fpm
。在我的php.ini
文件中,我有xdebug.remote_host=10.100.9.87
。
运行php -i|grep remote_host
时,我得到xdebug.remote_host => 10.100.9.87 => 10.100.9.87
我可以从CLI运行php test.php
,它将在我的IDE中触发调试器。
但是,当我使用phpinfo()
创建文件并通过nginx
执行文件时,本地值和主值的remote_host
的值都列为192.168.0.16
。该IP没有机器,我也不知道该IP来自何处。
我已经仔细检查过我正在编辑正确的php.ini
文件,并且已在所有加载的配置文件上运行grep
,以确保我没有在任何地方覆盖该值。
我在本地配置或docker配置中的任何地方都没有使用192.168.0.0/24
子网。我不知道192.168.0.16
值从哪里来。我已经在容器中运行find / -exec grep "192.168.0" {} \; -print 2>/dev/null
,除了xdebug日志表明连接失败外,它什么都没有。
关于如何覆盖我的xdebug.remote_host
设置的任何想法?
答案 0 :(得分:0)
我听了@LazyOne的建议,浏览了我的docker-compose.yml
文件,发现:
XDEBUG_CONFIG=remote_port=9002
我能够修改此设置,以更改从phpinfo()
报告的本地值。我将remote_host
添加到了该变量声明中:
XDEBUG_CONFIG=remote_port=9002 remote_host=10.55.6.26
现在,我可以通过Web请求连接到我的IDE。
因此,似乎php.ini
文件被忽略了,而使用了XDEBUG_CONFIG
变量。