PHPエラーを画面に表示する方法

静的サイトにPHPメールフォームを組み込んでアクセスしたら、「このページは動作していません」と表示されてしまう…そんなケースがたまにありますよね。

PHPエラーの確認はレンタルサーバーのコンパネ(コントロールパネル・管理画面)からphp.iniで設定したり、ログ機能から確認できたりすると思います。

しかし、これらはコンパネへのログイン情報を持っている時のみ可能な方法。
案件によってFTP情報だけしかもらっていないというケースもあると思います。

今回はそんな時にエラーメッセージを表示させる方法について。毎回忘れてしまうので備忘録として残しておきます。

コード

概要としては、新しいPHPファイルを作成して、エラー出力設定をした後確認対象ファイルを読み込みます
そうすることで、確認対象ファイル内でエラー(表示時や、何か処理した際など)が起きた場合、画面上にそのメッセージが表示されるようになります。

  1. デバッグをしたいPHPファイルを「form.php」とした場合、check.phpを用意し下記を記述する

    <?php
    ini_set('error_reporting', E_ALL);
    ini_set("display_errors", 1);
    
    require_once("form.php");//エラーが発生するファイル
    ?>
  2. check.phpをアップロードし、check.phpにアクセスしてphpの検証を行う
メモ

おまけ:WordPressの場合

WordPress関連のお仕事を請け負うので、こちらはよく使います。
以下のコードをwp-config.phpに記述することでエラー・通知・警告すべてのメッセージが wp-content/debug.log に出力されます。

// WP_DEBUG モードを有効化
define( 'WP_DEBUG', true );

// /wp-content/debug.log ファイルへのデバッグログの出力を有効化
define( 'WP_DEBUG_LOG', true );

// エラーと警告の画面への表示を無効化
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

WordPress でのデバッグ

使う際の注意

どちらも重々気をつけたいところが、エラーメッセージの表示設定ON状態で放置するのはセキュリティ的によろしくないので、一時的なデバック方法として使うこと

wp-config.phpの設定ファイルを作業の度に戻すのは神経を使いますが、WordPressのサイトヘルス画面にも注意点として出てきます。
デバッグが終わったらちゃんと戻そう!

ロリポップのモジュール版 PHP でエラーを出力する方法