MAMPを使ってPHPの勉強をしているのですが、エラー内容が表示されないのでどこが原因か探すのが大変でした。
エラーが表示されない
エラー内容が表示されていないので何が問題かが探しづらいです。
しかし、php.iniのごく一部分を変更すればよかっただけなので忘れないように書き留めておきます。2分で完了します。
該当のphp.iniを探す
MAMPを起動して『Open WebStart page』からlocalhostでMAMPページを開きます。
ページを開いてから『TOOLS→PHPINFO』を開きます。
こんな感じで現在使用しているPHPのバージョンが確認できます。
また、以下のPHPタグを自分のページに埋め込めばlocalhostだけでなく実際のサーバーで使われているPHPのバージョンを調べることもできます。
<?php phpinfo(); ?>
『display_errors = off』を変更
現在使用しているPHPのバージョンに該当するphp.iniを編集します。今回はPHPのバージョン7.3.1を使用しているので該当のphp.iniを探します。
『MAMP→bin→php→php7.3.1→conf→php.ini』を編集していきます。バージョンの違いはあれどもほぼ一緒になっているはずです。
※MAMP直下の『conf』ではないのでご注意ください。
テキストエディタでphp.iniファイルを開くと、MAMPで現在使用しているPHPのバージョンについての設定が書かれています。今回は『display_errors』という項目を探します。
何行目に書かれているかはMAMPのバージョンによって変わります。テキストエディタで『display_errors =』と検索すると見つかります。
変更前
; This directive controls whether or not and where PHP will output errors,
; notices and warnings too. Error output is very useful during development, but
; it could be very dangerous in production environments. Depending on the code
; which is triggering the error, sensitive information could potentially leak
; out of your application such as database usernames and passwords or worse.
; For production environments, we recommend logging errors rather than
; sending them to STDOUT.
; Possible Values:
; Off = Do not display any errors
; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
; On or stdout = Display errors to STDOUT
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = off
変更するのは上の部分の最後にある『off』を『on』に切り替えるだけです。
display_errors = on
変更したら保存して終了しましょう。なおphp.iniはPHPを動かす根幹になるものなので不安な方はバックアップをとっておきましょう。
MAMPを再起動
該当のphp.iniを編集したらMANPを再起動させれば設定が反映されます。
変更前
変更後
変更が反映された方ではエラー表示がされて、requireで呼び出したheader.phpの拡張子がphになっていると書かれているのがわかります。
PHPの勉強で使いやすいMAMPですが、カスタマイズすることで使い勝手はよくなります。エラー表示はほぼ必須設定なので済ましておきましょう。