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 failed:19行目の/opt/lampp/htdocs/xampp/project/upload_art.phpで名前またはサービスが不明です
警告:file_get_contents( http://app6.pixlr.com/_temp/528afa6e2f7cc6a5b1000101.jpg ):ストリームを開けませんでした:php_network_getaddresses:getaddrinfo failed:/ opt/lampp/htdocsで名前またはサービスが不明です19行目の/xampp/project/upload_art.php
ここに投稿されたすべての回答をチェックアウトしましたが、問題を解決できるものはありません。助けてください!
サーバーが外の世界に接続できないことを意味します
これはおそらくDNSの問題を考えれば何も変わらないでしょう
したがって、許可がある場合は、/ etc/resolv.confファイル内のネームサーバーを他のネームサーバーに変更してみてください。
外部との接続を許可されるhttpdも必要です。 selinuxポリシーを確認してください。これは、接続の問題を解決するのに役立ちます:
setsebool -P nis_enabled 1
setsebool -P httpd_can_network_connect 1
WebアプリでDocker envを使用している場合のアドバイスを次に示します。 docker php画像を使用したときに同じ問題があり、ymlファイルにdnsオプションを追加しました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
@DUzunのコメントの1つを参照し、コンピューターサイエンス専攻ではなくサーバー全般に精通している私のような人のために、Linux/Centos6(Plesk Onyx)の問題を修正しましたによって:
1)/etc/resolv.conf
(ファイルが空でした)
2)追加:
nameserver 8.8.8.8
nameserver 8.8.4.4
options rotate
options timeout:3
うまくいけば、これはそこに誰かを助ける。
Smtp_Host fsockopen()呼び出しでIPアドレスの代わりに名前を使用している場合、サーバーはその名前をIPアドレスに解決できません。可能であれば、接続しようとしているサーバーのIPを見つけて、代わりに使用します。それがうまくいくことを願っています。 例
$config = Array(
'protocol' => 'smtp',
'smtp_Host' => '166.62.73.4', // mail.servername.com
'smtp_port' => 587,
'smtp_timeout' => '7',
'smtp_user' =>'[email protected]',
'smtp_pass' => 'password',
'_smtp_auth' => false,
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'crlf' => '\r\n',
'newline' => "\r\n"
);