2017-08-07 20 views
0

私は/ public_html/logsフォルダに404.logファイルを持っています。ファイルは書き込み可能ですが、時にはエラー:「ストリームを開くことに失敗しました:許可が拒否されました」

404ページが表示されると、404.logファイルに情報が追加され、私のウェブサイトに関する情報と、アクセスしようとしている人の情報が表示されます。

なんらかの理由で、ときどきエラーPermission Deniedが表示されることがあります。ファイルは書き込み可能で、実行可能で、毎日書き込まれます。存在しないページに移動すると、ファイルが書き込まれ、そこにエントリが表示されます。

許可が拒否されているため、エラーが表示され、ロボットや他の人が自分のWebサイトに自分のやり方を強制しようとしていると思います。

/static/../../../../../../../../../etc/passwd. /cms/www/loader.php/system/"><iMg /webtrees/modules_v3/googlemap/wt_v3_street_view.php?map="> /sites/all/modules/fckeditor/fckeditor/editor/filemanager/connectors/cfm/connector.cfm?Command=GetFolders&Type=File&CurrentFolder=%2F

だから私の推測では、ファイルがすでに同じスクリプトによって開かれているということですが、ウェブサイトにアクセスしているので、非常に速く、それは拒否された権限になります。これを防ぐ方法はありますか、何とか非同期的に書きますか?

答えて

1

まず、Webサーバが提供するアクセスログを見て、404の発生数を確認してください。 PHPを使用しなければならない場合は、できることがいくつかあります。

並列書き込みのオプションがあるかもしれませんが、私はあなたに非常に奇妙なファイルを与えるために、多くのエラーが混在していると思います。

ログに記録する方法をファイルではなくデータベースに変更することがあります。明らかに、データベースは同時に多くの要求に適しており、発生する各エラーに対して新しいレコードを作成するだけです。

また、独自のログレイヤーを実装することもできます。これは基本的にimメモリキューで、空でないときは常にファイルに書き込もうとします。この方法で、ログをバッファリングできます。キューが使用しているメモリ量を把握するだけでなく、何か起きたときのタイムスタンプを保存することについて考える必要があります。

私はかなりよくあなたのためにこれを世話する多くのライブラリが存在することを確かめてください。これらの図書館を執筆した人々も同様にこれらの問題に遭遇し、それらのための包括的なソリューションを作成したため、今は心配する必要はありません。

+0

あなたが正しいです、私は今からaccess_logファイルを使用するつもりです。 – Chud37

関連する問題