我在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
设置如何或在哪里被覆盖的任何想法?
我接受了@ 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
变量。