MAMPやXAMPPでのPHPプログラムのエラー表示設定


WebサイトやWebアプリケーションのテスト開発をしたり、またPHPプログラミングを学んだりする時には、MAMP(マンプ)やXAMPP(ザンプ)といったパッケージソフトウェアでローカル開発環境を構築してプログラムを動かしていくことでしょう。

プログラムを動かしていく中で、PHPプログラムに間違いがあるともちろんエラーとなりますが、MAMPやXAMPPのデフォルトの設定ではエラーが表示されません。
WarningやFatal errorといったエラーが起きた時は、どのようなエラーなのか、またどこのプログラムが間違っているのかわからないと、何行目のプログラムが違うのか探すのでデバッグするのに時間がかかってしまいます。

昔はデフォルトで表示する設定でしたが。

ここではPHPのエラー表示の設定について説明します。

設定方法はいくつかありますが、1番手軽で簡単な方法をご紹介します。
PHPの設定ファイルである「php.ini」というファイルを編集します。

説明の中で触っていくファイルはPHPの設定に関する重要なファイルになりますので、間違えて大事な情報を削除してしまいPHPの設定がおかしくならないように、編集作業をする前にバックアップを取っておきましょう。


php.iniの設定


PHPの設定ファイルに記述する内容は以下になります。

// エラー出力をする
display_errors = On

// エラー出力をしない
display_errors = Off



デフォルトの設定では「display_errors = Off」となっています。
こちらの記述を編集します。

MAMPとXAMPPでは設定ファイルの場所が違いますので、ここではMacのMAMP、WindowsのXAMPPとして両方の方法を説明します。


MAMP


MAMPでは、PHPのバージョンごとで分かれています。
まずはPHPのバージョンの確認方法です。

上部メニュー「MAMP」から「Preferences」と進み、環境設定の画面を表示させます。
環境設定の上部のタブから「PHP」を選択すると、現在利用しているPHPのバージョンが確認できます。

MAMPでのPHPのバージョン確認



PHPのバージョンが確認できましたら、MAMPのフォルダからPHPの設定を開きます。
サンプルではPHPのバージョンが7.3.8ですので、PHPのフォルダは「php7.3.8」となります。

場所は「Applicants > MAMP > bin > php > php7.3.8 > conf」となります。

MAMPのphp.iniファイルの場所



php.iniファイルをエディタで開いて編集します。
場所は472行目あたりです。
ファイル内検索で、「display_errors」を検索すれば早いです。

デフォルトでは「display_errors = Off」となっていますので、設定を「On」に編集してファイルを保存します。

MAMPのPHPエラー表示設定



MAMPを起動している状態でしたら設定が反映されませんので、一度停止させて再起動します。


XAMPP


XAMPPではバージョンごとに分かれておらず、全体としての設定となります。

Windows PCのCドライブのXAMPPフォルダから「php」フォルダに進むと、php.iniファイルがありますのでエディタで開いて編集していきます。

XAMPPのphp.iniファイルの場所



472行目あたりに「display_errors」の設定が記述されています。
デフォルトでは「display_errors = Off」となっていますので、設定を「On」に編集してファイルを保存します。

XAMPPのPHPエラー表示設定



設定ファイルの編集はコントロールパネルからでも。
Apacheの「Config」ボタンからphp.iniファイルの編集へと進むことができます。

XAMPPのコントロールパネルからphp.iniファイルを編集



XAMPPでも起動している状態でしたら設定が反映されませんので、再起動させて設定を反映させましょう。

その他、手軽にできる方法として、PHPファイル内に記述する方法も一応ご紹介します。


PHPファイル内で設定


ファイル別で表示/非表示を分けたい場合には、直接PHPファイルに設定を記述します。
ini_set()関数を利用します。

記述する内容は以下になります。

//エラー出力をする
<?php
ini_set('display_errors', 1);
?>

//エラー出力をしない
<?php
ini_set('display_errors', 0);
?>



php.iniファイルの編集でPHP全体に対して設定した方が、ファイル別で表示させたり後から非表示に変えると手間がかからないと思いますが、もしファイル別で表示/非表示をコントロールしたいのであれば覚えておくと良いでしょう。

MAMPやXAMPPなどのローカル環境では、エラーの出力をOnにしておくことでエラーの内容や場所がすぐに分かって便利ですが、実際の運用で利用するサーバでは、もしエラーを出した時に表示される情報が重要な内容だったりすることもあるので、セキュリティ的にもOffにしておくことをおすすめします。