6

私の会社には大規模なホスティングがありますが、それは私たちによって管理されていません。構成ファイルは表示されませんが、ローカル テスト サーバーでこの機能に応答したいと考えています。

私は自分の会社に入社したばかりで、アプリケーションのデバッグを開始して、マイナーおよびメジャーの問題をクライアントに修正したいと考えていますが、ファイルの量が非常に多いため、単一のerror_fileが巨大です..そして、これに取り組んでいる人がたくさんいるので、それぞれログを確認する時間 (30 秒から 1 分など) には、何百もの行が追加されています。

これが.htaccessファイルを介して、またはphp.iniで Apache に設定されているかどうかはわかりません。

PHP エラーについて話しているのですが、これが PHP で設定されているのか、Apache で設定されているのか、サードパーティのライブラリを使用して設定されているのかはわかりません。

特定のフォルダーerror_logを設定することについて話しているのではありません。エラーがスクリプトフォルダーに記録されているかどうかについて話しています。

例: test1 という名前のフォルダーを作成します。その中に、いくつかのエラーをスローするバグのある PHP スクリプトを作成します。スクリプトを実行すると、フォルダーに作成されたerror_logファイルが表示されます。そのため、オンザフライで動作します。

ホスティング会社のサポートにこれを行う方法を尋ねようとしましたが、回答がありません。


ある種のcPanel設定である可能性があるかどうかはわかりません(ところで、ホスティングサポート担当者もこの質問を理解していませんが、まあ..通常、サポートのレベル1は技術的なものを処理できません)。

4

3 に答える 3

14

見つけた。

次のように、 php.iniファイルにディレクティブを設定する必要があります。文字列は "error_log" です。右側には、ログに必要なファイル名があり、

error_log = error_log

これにより、スクリプトが実行されたフォルダーに PHP エラー ログが生成されます。

説明してみます。

フォルダー/www/site/libでtest.phpをスクリプト化します。

include "./db_conn.php";

ファイルdb_conn.phpが同じディレクトリにない場合、警告とエラーが発生します。通常、これは servers/vhost ログにつながりますが、このディレクティブを使用すると、 /www/site/libディレクトリの下にerror_logファイルが作成されます。

なぜ私はこれを見ていましたか?さて、私が書いたように、私は巨大なアプリケーションに取り組んでおり、多くの火災警告、通知などの何千ものファイルがあります。プロジェクトに参加しているのは私だけではなく、サイトのerror_logファイルは非常に巨大で、保持するのが困難でした1 つまたはいくつかのファイルのデバッグの進化を追跡します。ここで、作業中のディレクトリからログを追跡する必要があります。

于 2012-05-22T22:09:29.467 に答える
1

これをvhostまたはhtaccessファイルに追加することで、ログを管理できます。

ErrorLog /path/to/a/writable/directory/error.log

詳細については、htaccessによる高度な PHP エラー処理に関するこの記事を参照してください

于 2012-05-08T14:12:09.760 に答える
0

PHP でこれを行うには、ファイルphp.iniを編集して次の行を追加します。

error_log = /path/to/where/you/want/your/php-errors.log

次に、Web サーバーを再起動します。これにより、そのファイルに PHP エラーが表示され、PHP エラーのみが表示されます。もちろん、すべてのエラーを破棄するようにスクリプトが作成されていないことが前提です。

Apache でこれを行うには、SetEnvIf を使用して PHP で終わるすべての要求に環境変数を追加し、その特定の環境変数を含むすべてのログを出力します。例えば:

SetEnvIf Request_URI "\.php$" phplog
CustomLog /path/to/php.log env=phplog

これを複数のフォルダーで使用するには、次のように、フォルダーごとに 1 つの環境変数を作成し、フォルダーごとに 1 つの CustomLog を作成します。

SetEnvIf Request_URI "/folder1/.*\.php$" log_folder1
Customlog /path/to/folder1/php.log env=log_folder1

SetEnvIf Request_URI "/folder2/.*\.php$" log_folder2
Customlog /path/to/folder2/php.log env=log_folder2
于 2012-05-08T14:30:22.660 に答える