Debian lenny + apache2 でredmineを動かす その2

SubversionをWebDAVで使っていたり、情報共有のためにwikiを使っている–しかもウェブサーバーはapacheという場合です。そんなときはRedmineをapacheから見せたいと思うのではないかと思います。Railsを動かす手法はいくつかありますが、シンプルなPassengerをお勧めします。

モジュールの作成が終了すると、apacheの設定ファイルにPassengerの設定を追記しなさいとのメッセージが出ます。モジュールの位置がDebian流でないのが気になりますが、ここはgemとpassengerの流儀に従って、下記のような感じで設定ファイルを作成します。コピペで設定する人(わたしです)はバージョンの記述に注意してください。

# cat <<EOD > /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so
PassengerRoot /var/lib/gems/1.8/gems/passenger-2.0.3
PassengerRuby /usr/bin/ruby1.8

# ln -s /etc/apache2/mods-available/passenger.load /etc/apache2/mods-enabled/passenger.load

わたしは複数のドメインを1台で動かすケースが多いこともあり、ドメインごとに静的コンテンツとアプリケーションのディレクトリを分けて配置しています。

/home/www/html         (htmlファイルなどの静的コンテンツ。一般ユーザーが更新する)
/home/www/html/redmine (-> /home/www/app/redmine/public のリンク)
/home/www/app          (cgiなどはDBのパスワードとかあるので一般ユーザーには見えないようにする)
/home/www/app/redmine  (redmine本体)

このディレクトリ配置を踏まえた設定が下記になります。VirtualHostの設定はデフォルトの/etc/apache2/sites-enabled/00defaultがないのが前提です。もしある場合には削除してください。/etc/apache2/sites-available/defaultのリンクなので、気軽に消してOKです。

# cat <<EOD > /etc/apache2/sites-available/www
NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@www.example.com
        DocumentRoot /home/www/html/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/www/html>
                Options FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog /var/log/apache2/www-error.log
        LogLevel warn
        CustomLog /var/log/apache2/www-access.log combined
        RailsBaseURI /redmine
</VirtualHost>
EOD

# ln -s /etc/apache2/sites-available/www /etc/apache2/sites-enabled/www
# /etc/init.d/apache2 restart

apacheを再起動したら http://www.example.com/redmine/ にアクセスします。redmineにアクセスしないうちは下記のようなプロセスですが

 2197 ?        Ss     0:00 /usr/sbin/apache2 -k start
 2206 ?        Sl     0:00  \_ /var/lib/gems/1.8/gems/passenger-2.0.3/ext/apache2/ApplicationPoolServer
 2208 ?        Sl     0:04      \_ Passenger spawn server

redmineへアクセスがあってしばらくの間は次のようになります。

 2197 ?        Ss     0:00 /usr/sbin/apache2 -k start
 2206 ?        Sl     0:00  \_ /var/lib/gems/1.8/gems/passenger-2.0.3/ext/apache2/ApplicationPoolServer
 2208 ?        Sl     0:04  |   \_ Passenger spawn server
 2568 ?        S      0:04  |       \_ Passenger ApplicationSpawner: /home/www/app/redmine
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2571 ?        S      0:01 Rails: /home/www/app/redmine