私のウェブサイトはユーザーに電話の入力を求めますログインとして番号を入力すると、チーム名を選択してからゲームを選択できます。画像を読み込もうとすると、何も読み込まれず、apacheを再起動して再試行する必要があります。
しかし、ネットワーク内からこれを実行した場合、再起動しなくても問題は発生しません。ファイアウォールを介してポート9999からポート80を開きました。
サーバーをDMZに配置した場合。さらに先に進むことができます。つまり、次のページが読み込まれ、読み込まれるはずだったすべての画像について、以下に示す同じエラーが表示されます。したがって、ポートをトリガーするものかどうかはわかりません。
apacheログに表示される唯一のエラーは次のとおりです。
[Mon Sep 15 13:43:58 2014] [error] [client 64.138.248.65] PHP Warning: getimagesize(http://example.com:9999/Events/01/439/009/Preview/1156nr_140807_439_009_0014.jpg): failed to open stream: Connection timed out in /www/gf/customer/favorites.php on line 48, referer: http://example.com:9999/customer/teams
つまり、ファイアウォールと関係があるようです。しかし、他に何をすべきかわからない。
回答:
回答№1は1getimagesizeのメソッド呼び出しは、入力としてHTTPURLを使用しています。これは、ローカルファイルシステムではなく、インターネットをトラバースしてイメージをロードしようとしていることを意味します。
インターネットではなくローカルファイルシステム上の画像を指す正しいパスをソースコードに挿入すると、問題が解決します。
原因は確かにネットワーキングです。 HTTP URLとしてコーディングした画像をロードするために、インターネットをそれ自体にトラバースできない可能性があります。