Redmineのインストールで少しハマったときの話
2年ぶりぐらいの更新です。
アホみたいに忙しかった(今も忙しいけど)ので、完全に更新を怠けてました。
ちょっと思うところがあり、Redmineのインストールをしたのですが、中々うまく動かなかったので、その話。
基本的な構成
- CentOS 7
- Apache 2.4
- MySQL 5.7
- その他最新のものを使用
基本的には以下の参考サイトを見ながら、必要に応じて設定を変更(主にデータベースのところ)していくだけ。
でApacheを再起動すれば、ハイっ!動かない。
Redmine 3.1をCentOS 7.1にインストールする手順
何回インストールしても設定しても、間違いはないはずだ。ということで、Apacheのエラーログを確認してみたところ以下のようなエラーが出ていた。
[Sat May 21 03:03:04.099790 2016] [passenger:error] [pid 18377] *** Passenger could not be initialized because of this error: Apache is configured to log to a pipe, so Passenger cannot be initialized because it doesn't support logging to a pipe. Please configure Passenger with an explicit log file using the `PassengerLogFile` directive. [Sat May 21 03:03:04.102969 2016] [mpm_prefork:notice] [pid 18377] AH00163: Apache/2.4.6 (CentOS) Phusion_Passenger/5.0.28 configured -- resuming normal operations [Sat May 21 03:03:04.102991 2016] [core:notice] [pid 18377] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
どういうことかというと、私のApacheの設定がどうもRailsには合っていないらしい。
私のApacheの設定はこんな感じ。
問題はここ。
ErrorLog "|/usr/sbin/rotatelogs /var/www/logs/httpd/error_log.%m%d 86400 540" CustomLog "|/usr/sbin/rotatelogs /var/www/logs/httpd/access_log.%m%d 86400 540" mylogforat env=!no_log
パイプでロギングしているのが対応してないとのこと。ということでエラーメッセージに出ている通り、PassengerLogFileを設定することする。
/etc/httpd/conf.d/redmine.conf
<Directory "/var/lib/redmine/public">
Require all granted
</Directory>
LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.28/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.28
PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>
Header always unset "X-Powered-By"
Header always unset "X-Runtime"
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 864000
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
PassengerFriendlyErrorPages off
PassengerLogFile /var/www/logs/httpd/error.log
RackBaseURI /redmine
Apache再起動したら普通に動きました。