(PHP)PHPのエラーログをだす
今までエラーログがなぜかwebページ上にでてたのに出なくなったので、error_logを特定の場所い吐き出してくれるように設定。
動作環境
実際の手順
- まず、php.iniの場所を調べる.
<?php phpinfo(); ?>
これの"Configuration File (php.ini) Path的なところに記載されている (http://am1tanaka.hatenablog.com/entry/2016/02/04/173256)
- 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については、参考にしたページと同じ(なんでこうでなければならないか理解していない)
- 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行書き出してくれる。