Warning: dns_get_record(): A temporary server error occurred

本文详细阐述了如何解决Docker产生的子机/etc/resolve.conf权限为600导致的问题,通过将权限修改为644,确保others可读,从而修复DNS解析相关问题。同时分析了问题的根本原因,包括用户权限和Docker只读层的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接


测试

#! /usr/bin/php
<?php
echo gethostbyname("test.xx.com");
echo "\n";
var_dump( dns_get_record("test.xx.com") );
echo "\n";

/etc/resolve.conf

问题: Docker生产的子机 /etc/resolve.conf权限是 600.
吓尿. 修改成 644, 让others可读后修复,影响DNS解析的地方很多,很少碰到因为 /etc/resolve.conf权限影响的问题,无语了,这种问题,我丫竟然查log没发现!按大概分析,以为不应该出现这种情况才对!

其实本质是nobody等普通用户,权限不够罢了,而php-fpm是noboby用户跑的. 另外,应该也和Docker把 /etc 当只读层有关?思路比较乱,下次碰到问题,多方面分析下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值