FreeBSD - メンテナンス・トラブルシュート - PHP - ログ - php.ini の編集
1. php.ini の編集 /usr/local/etc/php.ini を編集してログを出力するようにします。 ; Log errors to specified file. PHP's default behavior is to leave this value ; empty. ; http://php.net/error-log ; Example: ;error_log = php_errors.log ; Log errors to syslog (Event Log on Windows). ;error_log = syslog のあたりですな。 デフォルトではすべてコメントになっていて、すべてコメントだと apache のエラーログに出力されることになります。 ; Log errors to specified file. PHP's default behavior is to leave this value ; empty. ; http://php.net/error-log ; Example: ;error_log = php_errors.log ; Log errors to syslog (Event Log on Windows). ;error_log = syslog error_log = /パス/ファイル名 ってことになります。 2. パスやファイル名をどうするか ログを出力するパスは、通常 /var/log ってことになりますが。 ここの所有者は「root:wheel」です。 apache は「www:www」の権限で動作しますので(Linux の場合「apache:apache」)、デフォルトでは書き込み権限がなくて、いろんな人が悩んだりしております。 わたしの場合 /var/log/www を作成して、その所有者を「www:www」にしておりますので、そのあたり悩まずに済みました。 ファイル名ですが「php」の章に書いております、アプリケーションからのログと一緒にしたいものですから、そこで使用しているものと同じファイル名にしました。 3. ローテーション ローテーションに関しても悩んでいる型が多くいらっしゃるようですが、わたしは /usr/local/etc/newsyslog.conf.d/apache.conf に # logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] /var/log/www/*.log www:www 644 36 * $M1D0 BG /var/run/httpd.pid とまとめて書いてあるので、アクセスログ・エラーログと同時にローテーションすることになります。 このあたり、FreeBSD の newsyslog の恩恵です。
/usr/local/etc/php.ini
; Log errors to specified file. PHP's default behavior is to leave this value ; empty. ; http://php.net/error-log ; Example: ;error_log = php_errors.log ; Log errors to syslog (Event Log on Windows). ;error_log = syslog
; Log errors to specified file. PHP's default behavior is to leave this value ; empty. ; http://php.net/error-log ; Example: ;error_log = php_errors.log ; Log errors to syslog (Event Log on Windows). ;error_log = syslog error_log = /パス/ファイル名
/var/log
/var/log/www
/usr/local/etc/newsyslog.conf.d/apache.conf
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] /var/log/www/*.log www:www 644 36 * $M1D0 BG /var/run/httpd.pid