ホームページ バックエンド開発 PHPチュートリアル PHP エラー処理 (開発および起動)

PHP エラー処理 (開発および起動)

Jun 23, 2016 pm 01:46 PM

PHP 開発者の場合、製品が使用されたら、パス、データベース接続、データ テーブル、およびこれらのエラーによって公開されるその他の情報によるハッカーによる攻撃を避けるために、display_errors オプションをすぐにオフにする必要があります。しかし、どのような製品でも使用後は必ずエラーが発生します。開発者に役立つエラー レポートを記録するにはどうすればよいでしょうか?エラーレポートを別のテキストファイルに記録できます。エラー ログの記録は、開発者や管理者がシステムに問題があるかどうかを確認するのに役立ちます。プログラム内のエラー レポートをエラー ログに書き込む必要がある場合は、PHP 設定ファイルの設定ディレクティブ log_errors をオンにするだけです。エラー レポートは、デフォルトで Web サーバーのログ ファイル (たとえば、Apache サーバーのエラー ログ ファイル error.log) に記録されます。もちろん、エラー ログを指定したファイルに記録したり、システムの syslog に送信したりすることもできます。詳細は次のとおりです。

1. 指定したファイルを使用してエラー レポート ログを記録します

指定したファイルを使用します。エラーレポートログを記録する場合は、指定したファイルを使用してエラーレポートログを記録します。 指定したファイルを使用してエラーレポートログを記録する場合は、必ずこのファイルを保存してください。攻撃される可能性を減らすために、ドキュメントのルート ディレクトリの外に配置します。また、このファイルは、PHP スクリプトを実行するユーザー (Web サーバー プロセスの所有者) によって作成される必要があります。 Linux オペレーティング システムでは、/usr/local/ ディレクトリの error.log ファイルがエラー ログ ファイルとして使用され、Web サーバー プロセス ユーザーに書き込み権限が設定されているとします。次に、PHP 構成ファイルで、error_log ディレクティブの値をエラー ログ ファイルの絶対パスに設定します。

php.ini の設定手順を次のように変更する必要があります:

1. Error_reporting = E_ALL; ルールのすべてのエラー レポートを定義します

log_errors = On

5. error_log = /usr/local/error。 log ;生成されたエラーレポートが書き込まれるログファイルの場所を指定します

PHP 設定ファイルを上記のように設定した後、Web サーバーを再起動します。このようにして、PHP スクリプト ファイルを実行するときに、生成されたすべてのエラー レポートはブラウザーには表示されませんが、指定したエラー ログ /usr/local/error.log に記録されます。さらに、error_reporting で定義されたルールを満たすすべてのエラーを記録できるだけでなく、PHP の error_log() 関数を使用してユーザー定義のエラー メッセージを送信することもできます。

この関数のプロトタイプは次のとおりです:

1. bool error_log (string message [, int message_type [, string destination [, string extra_headers]]] )

この関数は、エラー情報をエラー ログ ファイルに送信します。 Web サーバー、TCP サーバー、または指定されたファイルに送信します。この関数は、成功した場合は TRUE を返し、失敗した場合は FALSE を返します。最初のパラメータ メッセージは必須であり、送信されるエラー メッセージです。このパラメータのみを使用した場合、メッセージは設定ファイル php.ini で設定された場所に送信されます。 2 番目のパラメータ message_type は整数値です。0 はメッセージをオペレーティング システムのログに送信することを意味します。1 は PHP の Mail() 関数を使用してメッセージを電子メール アドレスに送信します。2 は送信します。このとき、3 番目のパラメータの destination は、宛先 IP とポートを表します。 3. ファイルの宛先に情報を保存します。

Oracle データベースへのログインの問題を例に挙げると、この関数の使用法は次のようになります:

1. error_log("Oracle データベースが利用できません!", 0);

4. }

5. if(!($foo=allocate_new_foo()){

6. error_log("迷惑です!", 1, ".mydomain.com"); // 管理者にメールボックスに送信

7. }

8. error_log("Screwed up!", 2, "localhost:5000"); // ポート 5000 に対応するローカル サーバーに送信します

9. , "localhost:5000"); わかりました!", 3, "/usr/local/errors.log"); //指定されたファイルに送信します

10. ?>

2. エラーエラー情報はオペレーティング システム ログに記録されます。 エラー情報はオペレーティング システム ログに記録されます。 Linux ではエラー ステートメントが syslog に送信されますが、Windows ではエラーがイベント ログに送信されます。ただし、オペレーティング システムが異なると管理方法が少し異なります。これは、システムおよびアプリケーションの実行に関連するメッセージを提供する UNIX ベースのログ ツールであることを理解してください。これらのログは、通常、イベント ビューアを介して表示できます。エラー レポートをオペレーティング システム ログに書き込みたい場合は、設定ファイルで error_log ディレクティブの値を syslog に設定します。 php.ini で変更する必要がある特定の設定ディレクティブは次のとおりです。

1. error_reporting = E_ALL ; 発生したすべてのエラーは PHP に報告されます

2. max_len = 1024 ; 指定されたエラー レポートが生成されます。一般的なエラー出力に加えて、PHP ではカスタマイズされたメッセージをシステム SYSLOG に送信することもできます。カスタマイズされたメッセージは、前に紹介した error_log() 関数を通じて syslog に送信することもできますが、PHP には、この機能のために一緒に使用する必要がある 4 つの専用関数が用意されています。

それぞれの概要は次のとおりです:

define_syslog_variables()

この関数は、openlog()、syslog、および closelog() の 3 つの関数を使用する前に呼び出す必要があります。この関数が呼び出されると、現在のシステム環境に基づいて次の 3 つの関数に必要な定数が初期化されるためです。

openlog()

現在のシステムでロガーへの接続を開き、システムにログ メッセージを挿入する準備をします。また、指定された最初の文字列パラメーターを各ログ メッセージに挿入します。この関数では、ログ コンテキストで使用される 2 つのパラメーターも指定する必要があります。使用方法については、公式ドキュメントを参照してください。

syslog()

この関数は、カスタマイズされたメッセージをシステム ログに送信します。 2 つの必須パラメータが必要です。最初のパラメータは定数を指定してメッセージの優先度をカスタマイズします。たとえば、LOG_WARNING は一般的な警告を表し、LOG_EMERG はシステム クラッシュを示す可能性のある重大な問題を表し、重大度を示すその他の定数は公式ドキュメントに従って使用できます。 2 番目のパラメーターは、システム ログに送信されるカスタマイズされたメッセージです。実行時に PHP エンジンによって提供されるメッセージ文字列またはエラー文字列を指定する必要があります。

closelog()

この関数は、カスタマイズされたメッセージをシステム ログに送信した後に呼び出され、openlog() 関数によって開かれたログ接続を閉じます。

カスタマイズされたメッセージを syslog に送信する指示が構成ファイルで有効になっている場合、前に紹介した 4 つの機能を使用して警告メッセージをシステム ログに送信し、システムの syslog 解析ツールを使用して警告メッセージを表示および分析できます。 PHP プログラムによって生成されるメッセージ 送信されるカスタマイズされたメッセージは次のとおりです。

1. syslog への警告レポート デモが送信されました、警告時刻: ".date("Y/m/d H:i:s"));

5. closelog();

6. ?>

Windows システムを次のようにしますたとえば、[マイ コンピュータ] を右クリックして管理オプションを選択し、システム ツール メニューに移動してイベント ビューアを選択し、アプリケーション オプションを見つけると、カスタマイズされた警告メッセージが表示されます。上記のコードは、システムの syslog ファイルに次のようなメッセージを生成します。これはイベントの一部です:

1. PHP5[3084]、警告レポートを syslog に送信するデモ、警告時刻: 2009/03/26 04:09:11.

エラー ログの記録に指定したファイルを使用するか、syslog を使用するかは、Web サーバーの環境によって異なります。 Web サーバーを制御できる場合は、syslog 解析ツールを使用してログを表示および分析できるため、syslog の使用が理想的です。ただし、Web サイトが共有サーバー上の仮想ホストで実行されている場合、エラー ログの記録には別のテキスト ファイルしか使用できません。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

See all articles