ホームページ  >  記事  >  バックエンド開発  >  php が独自のメソッドを呼び出すときにエラー 500 を報告する

php が独自のメソッドを呼び出すときにエラー 500 を報告する

(*-*)浩
(*-*)浩オリジナル
2019-09-17 11:44:003251ブラウズ

http リクエスト エラー ステータス コード 500 の通常の説明は、サーバーでエラーが発生し、リクエストを完了できなかったこと (つまり、サーバーの内部エラー) を意味しますが、特定の問題を詳細に分析する必要があります。

php が独自のメソッドを呼び出すときにエラー 500 を報告する

PHP プログラムの構文エラーが原因で

シナリオ 1: プロジェクトにはアラーム監視が設定されています (10 ごとにスケジュールされています)分 Web サイトの固定リンクにアクセスしてください) 1 日に 2 ~ 3 回、500 エラーを報告するメールが届くことがありましたが、再度手動でアクセスすると正常にアクセスされました... (推奨学習: PHP プログラミングの入門から熟練度まで )

これは最も一般的なエラーであり、文法エラーもすぐに再発する可能性があります。エラー メッセージが公開されている限り、問題はすぐに解決できます。

ローカル環境やテスト環境の場合、通常は次のように処理します。プログラムの入り口に出力エラー メッセージを設定するだけです:

//error_reporting设置应该报告的错误,下面表示除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);
//输出错误
ini_set('display_errors', 1);

ただし、オンライン環境では、ユーザーがこれを使用すると、このような露骨な印刷ミスを許すことはできません。どうすればよいでしょうか?プログラム エントリ ファイルのログ ファイルにエラー出力を設定できます。具体的なコードは次のとおりです:

error_reporting(E_ALL ^ E_NOTICE);
//禁止把错误输出到页面
ini_set('display_errors', 0);
//设置错误信息输出到文件
ini_set('log_errors', 1);

//指定错误日志文件名
$error_dir = '/logs/err/';
$error_file = $error_dir . date('Ymd').'.log';
//目录不存在就创建
if (!is_dir($error_dir)){
    mkdir($error_dir, 0777, true);
}
//文件不存在就创建之
if(!file_exists($error_file)){
    $fp = fopen($error_file, 'w+');
    if($fp){
        fclose($fp);
    }
}

//设置错误输出文件
ini_set("error_log", $error_file);

//程序正常执行逻辑......

先ほどのシナリオ 1 の問題は、後で同じプログラム エントリ ファイルでログに出力したときに発見されました。これは、mysql 接続が異常に切断され、プログラムが実行を継続したためです (mysql に接続するときは正常でしたが、特定のクエリ メソッドが呼び出されたときにエラーが報告されました。mysqli_real_escape_string メソッドが存在する場所にあったことを思い出してください) () を使用しました) により致命的なエラーが発生しましたが、最終的には正常に修復されました。

以上がphp が独自のメソッドを呼び出すときにエラー 500 を報告するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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