我不知道什么可以导致这个问题,Nginx的configuration或PHP或其他任何东西,但:
当下面列出的这些php函数的主机值被设置为像http://www.domain.com或www.domain.com的 FQDN时,我无法build立连接,但是如果我把例如192.2.8.1的主机名称IP地址, 问题就会消失 。
例如:@fsockopen($ host,$ port,$ errno,$ errstr,10)
当$ host =“www.somedomain.com”时不会build立连接
成功连接$ host =“192.2.2.1”
列出了迄今为止同样的问题
所有这些工作完美之前,我指出我的FQDN到我的服务器,当我testing
再加上它可以运行在我的电脑运行wammp服务器和相同的应用程序,在相同的代码的IP和域
我不是100%确定,但我猜这个问题后,我指出我的域名和DNS到服务器?
注意:这种情况与服务器configuration有关,我提供了更好地描述这个案例的php参考资料
'downvoters现在可以放松,我已经完全改变了描述'。
好 ! 最后经过了一个星期的努力,这个问题:
首先它似乎是一个百年来非常受欢迎的问题!
https://bugs.php.net/bug.php?id=11058
https://www.google.com/search?hl=es&ie=UTF-8&oe=UTF-8&q=php+php_network_getaddresses%3A+getaddrinfo+failed&meta=&gws_rd=ssl
一些人已经find了自己的解决scheme,但绝对不是PHP的错误。
这个问题可以涵盖什么:
– 可能导致这些问题的事情—————————————— ——-
[X]
首先检查是检查你的php.ini ,并确保这些属性已启用
allow_url_fopen = On
allow_url_include =开
[X]
创build一个phpinfo()文件[ phpinfofile.com 以防万一 ]并检查是否启用了这些扩展
OpenSSL的
sockets
特别是对于Windows用户通过禁用PHP_OpenSSL扩展来运行xammp或wammp,您可能无法通过@fsockopen
[X]
现在最重要的部分就是在resolv.conf之后去运行打开你的resolv.conf
sudo nano /etc/resolv.conf
[X]
请确保/etc/resolv.conf不是指向/ run / resolvconf /或其他常用目录的符号链接 。您可以运行
ls -la /etc/resolv.conf
看看结果是什么,如果是这样的话
-rw -r ----- 1 root root``/etc/resolv.conf --------> /run/resolvconf/resolv.conf
如果您有ftp访问权限,请下载您的/etc/resolv.conf,然后将服务器上的当前权限重命名为/etc/resolv.conf—–bk(仅用于备份),然后上传你从你的系统下载到服务器/ etc /
或者,如果你没有访问ftp运行这些命令
sudo cp /etc/resolv.conf /etc/resolv.conf.bak sudo rm /etc/resolv.conf sudo nano /etc/resolv.conf 把你的名字服务器放在新的文件上 例如: 名称服务器8.8.8.8 域名服务器8.8.4.4 并通过按Ctr + X保存它,然后键入“Y”并按回车 chmod a + r /etc/resolv.conf
在这种情况下,我的问题是这样的!
[X]
确保你的reslv.conf是所有用户都可以访问的
chmod a + r /etc/resolv.conf
结果应该是
-rw -r - r-- 1 root root <size> <date>
在运行ls -la /etc/resolv.conf之后
[X]
下一次运行
sudo nano / etc / network / interfaces
finddns-nameservers ,并确保名称服务器看起来很好(最好放置在/etc/resolv.conf文件中的任何名称服务器 – 例如: dns-nameservers 8.8.8.8 8.8.4.4
这就是我迄今为止发现的这个问题,我试过让所有人都能理解,对于你所熟知的东西
如果其他人有更多的事情请分享。
Nginx不使用系统的parsing器。 您必须使用resolver指令来定义resolver 。
将用于parsing上游服务器名称的名称服务器configuration为地址,例如:
resolver 8.8.8.8 valid=30s;
资料来源: http : //nginx.org/en/docs/http/ngx_http_core_module.html#resolver
由于您提供的信息量很难帮助您,但是我首先检查/etc/resolv.conf并检查每个nameserver是否正常工作:
[alexus@wcmisdlin02 ~]$ cat /etc/resolv.conf search XXX.XXX nameserver XX.XX.XX.XX nameserver XX.XX.XX.XX [alexus@wcmisdlin02 ~]$
你可以使用dig , host和nslookup 。