23

xampp サーバーの Web サイトで PHP スクリプトを使用して、サーバーから画像をダウンロードしようとしています。

画像は関数 file_get_contents を使用してダウンロードされています。

サーバーにダウンロードするためのphpコードは次のとおりです。

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);
}

しかし、私はこのエラーが発生しています:

警告: file_get_contents(): php_network_getaddresses: getaddrinfo に失敗しました: 19 行目の /opt/lampp/htdocs/xampp/project/upload_art.php で名前またはサービスが不明です

警告: file_get_contents( http://app6.pixlr.com/_temp/528afa6e2f7cc6a5b1000101.jpg ): ストリームを開くことができませんでした: php_network_getaddresses: getaddrinfo が失敗しました: /opt/lampp/htdocs/xampp/project/upload_art で名前またはサービスが不明です。 19行目のphp

ここに投稿されたすべての回答をチェックアウトしましたが、問題を解決するものはないようです。助けてください!

4

6 に答える 6

23

サーバーが外部の世界に接続できないことを意味します

DNSの問題を考えると、これはおそらく何も変更しません

したがって、権限がある場合は、/etc/resolv.conf ファイルのネーム サーバーを他のネーム サーバーに変更してみてください。

于 2013-11-19T07:00:01.037 に答える
11

外部への接続を許可する httpd も必要です。selinux ポリシーを確認してください。これは、接続の問題を解決するのに役立ちます:

setsebool -P nis_enabled 1
setsebool -P httpd_can_network_connect 1
于 2014-03-09T20:05:22.110 に答える
2

Web アプリにDocker env を使用している場合のアドバイスを次に示します。docker phpイメージを使用したときに同じ問題が発生し、ymlファイルにdnsオプションを追加して問題を解決しました。

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
于 2017-07-06T19:00:01.223 に答える