共计 658 个字符,预计需要花费 2 分钟才能阅读完成。
今天阿里云服务器报错 failed to open stream: php_network_getaddresses
网上很多答案都是 dns 问题, 我们一直使用的是阿里云的 dns, 出现问题的服务器
涉及到其中的很多台, 排查系统日志没有任何报错, 只有 php 的日志报错, 这个错误
甚至影响到了数据库的链接, 导致链接数据库时出现了以下错误 (刷新链接时不时正常时不时不正常)
ERROR 2005 (HY000): Unknown MySQL server host ‘xxxxxxx’ (110) 或 [2002] Name or service not known
由于找不到具体报错日志, 只能猜测是 php 模块出现问题.nslookup 解析都正常, 但是通过 php 函数获取到远端数据
日志报错 failed to open stream: php_network_getaddresses,
前些天服务器升级了 glibc libcurl 可能影响了 lib 中关于 dns 解析的几个包 libnss_dns.so.2 libnss_files.so.2 libresolv.so.2
重启 php 服务器正常!
总结:
1: 可能 php 模块异常 导致无法从 /etc/resolv.conf 中刷新到 DNS 服务器列表 无法解析到对应的 DNS 服务器
可能是升级中 libnss_dns.so.2 libnss_files.so.2 libresolv.so.2 模块出现问题, 不正常导致的! 到底是调用那个出现的问题已经无法排查了
给 linux 打补丁需要谨慎, 特别是升级内核之类的如果是云服务器切记打快照 (打快照并不一定能挽救你)