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のバージョンが確認できます。
PHPのバージョンが確認できましたら、MAMPのフォルダからPHPの設定を開きます。
サンプルではPHPのバージョンが7.3.8ですので、PHPのフォルダは「php7.3.8」となります。
場所は「Applicants > MAMP > bin > php > php7.3.8 > conf」となります。
php.iniファイルをエディタで開いて編集します。
場所は472行目あたりです。
ファイル内検索で、「display_errors」を検索すれば早いです。
デフォルトでは「display_errors = Off」となっていますので、設定を「On」に編集してファイルを保存します。
MAMPを起動している状態でしたら設定が反映されませんので、一度停止させて再起動します。
XAMPP
XAMPPではバージョンごとに分かれておらず、全体としての設定となります。
Windows PCのCドライブのXAMPPフォルダから「php」フォルダに進むと、php.iniファイルがありますのでエディタで開いて編集していきます。
472行目あたりに「display_errors」の設定が記述されています。
デフォルトでは「display_errors = Off」となっていますので、設定を「On」に編集してファイルを保存します。
設定ファイルの編集はコントロールパネルからでも。
Apacheの「Config」ボタンから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にしておくことをおすすめします。