passengerでrailsアプリのログが書き出されないなと思っていたら、apacheのプロセスはapacheで起動するのだが、passengerのプロセスがnobodyで起動していた。ログファイルの所有者はapacheにしていたので書き込めなかったわけだ。
なんでnobodyなのか調べると、結構ややこしい。この辺りに書かれているけど
PassengerUserSwitchingという設定があって、これが有効になっているとpassengerはアプリのスタートアップファイル(ex. config.ru)の所有者権限で実行される。これはデフォルトではonになっている。
ただし、Webサーバのプロセスがroot権限で実行されているとこの機能はoffになる。
自分の場合はPassengerUserSwitchingは設定していなかったのでデフォルトのonであり、Webサーバのプロセスもapacheで実行されていたので、有効になっている。しかし、config.ruの所有者がrootになっていた。この場合はPassengerDefaultUserの値が利用される。この値も設定していなかったので、デフォルト値のnobodyユーザになってしまったというわけ。
ややこしい