このサイトは数か月間稼働しており、正常に機能しています。URL のデータから請求書を作成する PHP ページがあります (たとえば、viewinvoice.php?id=250 はレコード 250 に基づいて請求書を作成します)。このページは Web ブラウザからアクセスでき、正常に動作します。
完全に別のページ (つまり、test.php) で、cURL 経由でそのファイルにアクセスしようとしています。ただし、呼び出しを行って結果を var_dump すると、bool(false) が返されます。
cURL 呼び出しを行う関数は次のとおりです。
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
HOME は完全な URL を表す定数です (例: http://www.example.com/ )。
$invoice_contents = file_get_contents_curl(HOME.'viewinvoice.php?id=242');
echo $invoice_contents;
var_dump( $invoice_contents );
URL を外部 URL (つまりhttp://www.google.com/ ) に変更してみましたが、ページは問題なく読み込まれます。Google のホームページを取得します。ただし、同じドメインにあるページは読み込まれません。これが起こる理由はありますか?
私はサーバー管理者ではありませんが、サーバーへのルート アクセス権があります。最近設定を変更していませんが、サーバー管理者が apache や php のバージョンを上げたのではないでしょうか?
いずれにせよ、これを再び機能させるために変更できる設定はありますか?
PS外部サーバー(別のドメイン)からこの正確な呼び出しを試みたところ、問題なく動作しました。