参考:PHPのエラーログが肥大してPHPが動かなくなった話

ある日、運用しているサービスがサーバエラーを頻出しだしたので、調べてみた。環境はUbuntu、nginx、php-fpm、postgresql。

  • 他のサーバへのdbアクセスがおかしくなったのかと思い、他の方法でdbアクセス→問題無し
  • サービスを色々再起動してみた。→変化なし
  • サーバを再起動。しばらくエラーでないが、しばらくするとエラーががが
  • php-fpmを再起動。しばらくエラーでないが、しばらくするとエラーががが
  • php周りかなと思ったので、phpのログを開く→開かない!
  • 良く見たらphp-fpmのログが2GB超えてた。ナンテコッタイ。
  • ログを退避して、ローテーション設定して改めてphp-fpmを再起動したら直った。めでたしめでたし。

メモがてらローテーション設定を書いておく

/etc/logrotate.d/php.conf

/path/to/php5-fpm.log {
  daily
  missingok
  rotate 52
  compress
  delaycompress
  notifyempty
  create 0644 group username
  dateext
}

エラーチェックテストはこんな感じ

logrotate -dv /etc/logrotate.d/php.conf