私の個人的な Web サイトの 1 つで、エラーをパーソナライズできるようにしたいと考えています。つまり、エラーが発生したときにビデオに何も表示したくないのですが、単純なテキスト ファイルにすべてのエラーを記録したいと考えています。常に本番環境で行う必要があります。
それを行うために行動できる4つのレベルがあり、これらには異なる優先順位があることを私は知っています. つまり、php.ini で設定されたディレクティブを、関数 error_reporting() および ini_set() を使用して Web ページに配置できる PHP の「ランタイム」ファイルで上書きすることはできません。
間違いがなければ、これらは 4 つのレベルです (最も重要なものから):
1) php.ini
2) httpd.conf
3) / であるドキュメントルートに配置される .htaccess ファイル
4) 最後に、定義済み関数 error_reporting() および ini_set() を使用した PHP ファイル
私の問題は、自分のサイトを持っている Web サーバーにあります。上記の4番目のソリューションを使用したいので、このphpファイルを準備して、私のページにオンラインで配置しようとしました。
<?php
include 'err_produ.php';
?>
そのソースは次のとおりです。
<?php
/*
This is for PRODUCTION.
Report all errors but show nothing on video: use the error_log file instead.
*/
error_reporting(E_ALL);
ini_set('display_errors', 'off');
ini_set('display_startup_errors', 0);
ini_set('log_errors', 1);
ini_set('log_errors_max_len', 0);
ini_set('ignore_repeated_errors', 1);
ini_set('ignore_repeated_source', 1);
ini_set('report_memleaks', 1);
ini_set('track_errors', 1);
ini_set('error_log', './error_log2');
?>
最も奇妙なことは、たとえば初期化されていない変数を書き間違えた場合でも、画面にエラーが表示されることです!!!!
私のerror_log2ファイルには、まったく何も表示されません!
ローカル Web サーバーでそのファイルを試してみました (Ubuntu で Xampp を取得しました) が、完全に機能します。画面には何も表示されず、error_log2 ファイルにはすべてのエラーが表示されます。
誰か助けてくれませんか?
私のサイトがある Web サーバーでは、ディレクティブが php.ini 内に設定されており、それにアクセスできないと思います。実際、無料でホスティングを提供する共有 Web サーバーです。
もしそうなら、私が書いたようなファイルを使用してランタイムを実行することは許可されていません。
どう思いますか?ありがとう。