ナルミヤの備忘録(仮)

ナルミヤが学んだことなどを書き記していくブログ(方向性模索中。)

(PHP)PHPのエラーログをだす

今までエラーログがなぜかwebページ上にでてたのに出なくなったので、error_logを特定の場所い吐き出してくれるように設定。

動作環境

実際の手順

  1. まず、php.iniの場所を調べる.
    <?php phpinfo(); ?>

これの"Configuration File (php.ini) Path的なところに記載されている (http://am1tanaka.hatenablog.com/entry/2016/02/04/173256)f:id:buddasls54:20180608184629p:plain

  1. php.iniを以下のように書き換える

error_reporting = E_ALL log_errors = On error_log = /opt/local/var/log/apache2/error_log

なお、error_logのところは、参考にしてページでは/var/log/apache2/php_errors.logとなっていたが、自分は apache2の元で開発を行なっているため、apache2のファイルがまとめられる/opt/local以下にerror_logのPATHをおいた。それ以下のPATHについては、参考にしたページと同じ(なんでこうでなければならないか理解していない)

  1. apacheの再起動

sudo apachectl restart

これで/opt/local/var/log/apache2/error_logにエラーが吐かれるようになった。ちなみに、error_logという部分の名前はなんでもいい。/opt/local/var/log/apache2/aaaとかでも/opt/local/var/log/apache2/error.logとかでも可能。(PATH指定されたファイルに吐き出すだけだからね!)

ちなみに...(エラーログの追い方)

ターミナル上で

tail -f /opt/local/var/log/apache2/error_log

とすると、tail -fコマンドの「ファイルが更新されたら、その分を後ろから追跡してコマンドラインに書き出す」という性質のおかげで、phpファイルにエラーが出るたびにエラーが見られるerror_logとなってくれる。
このコマンドを終了させたいときはCtrl + Cで終了できる。

付け加えていうと、このtailコマンドのオプションには-nオプションもあって、例えば、

tail -n 10 /opt/local/var/log/apache2/error_log

をターミナルで実行すると、error_logの中身を頭から10行書き出してくれる。

参考にしたwebページ