カテゴリ: PHP 更新日: 2026/01/07

PHP.iniでのエラーレポート設定を完全ガイド!初心者でもわかるerror_reportingとdisplay_errors

PHP の PHP.ini でのエラーレポート設定(error_reporting, display_errors)
PHP の PHP.ini でのエラーレポート設定(error_reporting, display_errors)

先生と生徒の会話形式で理解しよう

生徒

「PHPのエラーって、どこで設定を管理しているんですか?画面に出たり出なかったりしてよくわかりません…。」

先生

「PHPでは、エラーの表示や記録のルールを PHP.ini という設定ファイルで管理しているんですよ。特に大切なのが error_reportingdisplay_errors という2つの設定です。」

生徒

「それってエラーメッセージを出すかどうかを変更できるってことですか?」

先生

「その通り。開発中はエラーを画面に出した方が便利ですが、本番環境では危険なので非表示にしたり、ログに記録したりします。それでは詳しく見ていきましょう。」

-

1. PHP.iniとは?エラーハンドリングの中心になる設定ファイル

1. PHP.iniとは?エラーハンドリングの中心になる設定ファイル
1. PHP.iniとは?エラーハンドリングの中心になる設定ファイル

PHP.ini(ピーエイチピー インアイニ) は、PHPの動作ルールをまとめた設定ファイルです。 初心者はあまり触らない場所ですが、エラーハンドリングを理解するためには必ず知っておく必要があります。

この中で、PHPのエラーに関する設定を行う項目がいくつかあり、その中でも特に重要なのが error_reportingdisplay_errors です。 この2つだけでも正しく理解すれば、PHPのエラーが「見えない」「突然画面に大量の英語が出てくる」といった問題を根本から解決できます。

2. error_reportingとは?どのレベルのエラーを検出するか決める設定

2. error_reportingとは?どのレベルのエラーを検出するか決める設定
2. error_reportingとは?どのレベルのエラーを検出するか決める設定

error_reporting は「どのレベルのエラーを報告するか」を決める大切な設定です。 PHPにはいろいろな種類のエラーがあり、初心者には特に違いが分かりにくいですが、ここでは分かりやすく説明します。

たとえば:

  • Warning(警告)…プログラムは動くけど問題がある状態
  • Notice(注意)…変数が未定義など、軽微な問題
  • Fatal Error(致命的エラー)…プログラムが完全に停止する重大なエラー

error_reporting を設定すると、こうしたエラーのどれを捕まえるかを選べます。 代表的な設定がこちらです。


error_reporting = E_ALL

E_ALL(イーオール) は「すべてのエラーを報告する」という意味で、開発環境ではこれが必須です。

3. display_errorsとは?エラーメッセージを画面に表示するかどうか決める設定

3. display_errorsとは?エラーメッセージを画面に表示するかどうか決める設定
3. display_errorsとは?エラーメッセージを画面に表示するかどうか決める設定

初心者がよく混乱するのが display_errors です。 これは「発生したエラーを画面に表示するかどうか」を切り替える設定です。

開発中はエラーが画面に出た方が便利ですが、本番環境では絶対に表示してはいけません。
なぜならエラーメッセージにはファイルのパスや具体的なエラー内容など、攻撃者に利用される可能性がある情報が含まれているからです。

PHP.iniの設定例はこちら:


display_errors = On

On にすると画面にエラーが表示され、Off にすると表示されません。 本番環境では必ず Off に設定し、かわりにログファイルへ記録するようにします。

4. 開発環境と本番環境で設定を変える理由

4. 開発環境と本番環境で設定を変える理由
4. 開発環境と本番環境で設定を変える理由

プログラミング初心者が最も間違えやすい部分が「開発環境と本番環境を同じ設定にしてしまう」ことです。

● 開発環境(自分のパソコンなど)

エラーを画面に表示して問題ありません。


error_reporting = E_ALL
display_errors = On

● 本番環境(公開しているWebサーバー)

絶対にエラーを画面に表示してはいけません。


error_reporting = E_ALL
display_errors = Off
log_errors = On

log_errors は「エラーをログに記録する」設定です。これと組み合わせることで、安全に問題を追跡できます。

-

5. error_reporting の値はPHPコードでも変更できる

5. error_reporting の値はPHPコードでも変更できる
5. error_reporting の値はPHPコードでも変更できる

PHP.iniだけでなく、PHPコードの中からエラーレポートの設定を変更することもできます。 ただし、基本的にはPHP.iniで設定する方が推奨されています。


error_reporting(E_ALL);
ini_set("display_errors", "1");

6. 典型的なエラーハンドリング構成

6. 典型的なエラーハンドリング構成
6. 典型的なエラーハンドリング構成

実際のWeb制作やシステム開発では次のような構成が一般的です。

  • 開発:画面に表示しながら修正
  • 本番:ログに記録してユーザーには表示しない
  • 例外は set_exception_handler() でカスタム処理
  • エラーは set_error_handler() でキャッチ

このように「PHP.ini + コード側のハンドリング」を組み合わせることで、安全で安定したエラーハンドリング環境を構築できます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
New2
PHP
PHPのスコープとは?グローバル・ローカル・スーパーグローバルを完全解説!
New3
PHP
PHPの演算子をやさしく解説!算術・比較・論理・ビット演算子の使い方
New4
PHP
PHP の変数とは?基本的な使い方とデータ型を徹底解説!
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
No.2
Java&Spring記事人気No2
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
PythonでMySQLに接続する方法を完全解説!初心者でもわかるpymysqlの基本
No.5
Java&Spring記事人気No5
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.6
Java&Spring記事人気No6
PHP
PHPで画像ファイルをアップロードする方法を初心者向けに徹底解説!わかりやすい画像処理入門
No.7
Java&Spring記事人気No7
PHP
PHP の日付と時間の取得(date, time, strtotime)を完全解説!初心者でもわかる使い方
No.8
Java&Spring記事人気No8
PHP
PHP のデータ型を完全ガイド!初心者でもわかる int, string, float, bool など
-
-