file_get_contents(): php_network_getaddres

2019-01-04 14:24发布

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!

4条回答
放我归山
2楼-- · 2019-01-04 14:31

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.

查看更多
Evening l夕情丶
3楼-- · 2019-01-04 14:40

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
查看更多
小情绪 Triste *
4楼-- · 2019-01-04 14:48

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
查看更多
爱情/是我丢掉的垃圾
5楼-- · 2019-01-04 14:56

In reference to one of the comments by @DUzun, and for those like myself who are familiar with the server in general but not a computer science major, I fixed the issue on Linux/Centos6 (Plesk Onyx) by:

1) Opening /etc/resolv.conf (my file was empty)

2) Added:

nameserver 8.8.8.8
nameserver 8.8.4.4

options rotate
options timeout:3

Hopefully this helps someone out there.

查看更多
登录 后发表回答