file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known

匿名 (未验证) 提交于 2019-12-03 02:11:02

问题:

I'm trying to download an image from a server using a php script on my website on xampp server.

The image is being downloaded using the function file_get_contents.

The php code for downloading on the server is:

if(isset($_GET['path']) && isset($_GET['username'])) {   echo "path:".$_GET['path'];   $temp = explode(".", $_GET['path']);   $extension = end($temp);   $fname="images/".$_GET['title'];   $filenameIn  = $_GET['path'];   $filenameOut = "" . $fname;   $contentOrFalseOnFailure   = file_get_contents($filenameIn);   $byteCountOrFalseOnFailure = file_put_contents($filenameOut,$contentOrFalseOnFailure); } 

But I'm getting this error:

Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /opt/lampp/htdocs/xampp/project/upload_art.php on line 19

Warning: file_get_contents(http://app6.pixlr.com/_temp/528afa6e2f7cc6a5b1000101.jpg): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /opt/lampp/htdocs/xampp/project/upload_art.php on line 19

I have checked out all posted answers here but none seems to resolve the issue. Please help!

回答1:

It means your server cannot connect to the outside world

This probably won't change anything given the DNS issues

So, If you have permission, try changing the name servers in your /etc/resolv.conf file to other nameservers.



回答2:

There should be as well httpd allowed to connect outside. Check you selinux policy. this helps me to solve connection problem:

setsebool -P nis_enabled 1 setsebool -P httpd_can_network_connect 1 


回答3:

Here are advice in case you are using Docker env for your web app. I had same problem when I used docker php image, added dns options in yml file solved my problem.

docker-compose.yml

version: '2'  services:   webserver:     build: ./docker/webserver     image: my_webapp     dns: 8.8.8.8     dns_opt:       - use-vc       - no-tld-query     ports:       - 80:80       - 443:443     volumes:       - ./:/var/www/html 


回答4:

first at all and before any thing chick the internet connection



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!