Redmineインストール その5 Apache連携

はい。
Redmineインストール5回目です。

前回はmongrelで起動するまででしたが、
今回はさらに、apachemongrelと連携してみましょう。
とは言ってもバーチャルホストでプロキシ設定するだけです。


まずはapacheのコンフィグファイル
「/etc/httpd/conf.d/mongrel.conf」
を以下のように編集します。
(コンフィグファイルに関する注意点は
Subversionの設定時と同じです)

<VirtualHost *:80> 
  ServerName xxxx.expamle.co.jp 
  ServerAdmin toritori0318@xxxx.expamle.co.jp 
  DocumentRoot /home/rails/redmine 
  ProxyPass / http://localhost:3000/ 
  ProxyPassReverse / http://localhost:3000/ 
</VirtualHost> 

それではapacheで起動できているか確認です。
apache再起動後に以下のURLにアクセスします。
http://localhost/

Redmineが表示されたら連携成功です。


ただし、このままの設定だと
apacheに他のアプリケーションが乗っている場合も
Redmineのパスを見にいってしまいます。
そこで
http://localhost/redmine/
というURLを参照したときのみ、
リバースプロキシを適用してみたいと思います。


まず、先ほど修正したファイルを以下のように変更します。

<VirtualHost *:80> 
  ServerName xxxx.expamle.co.jp 
  ServerAdmin toritori0318@xxxx.expamle.co.jp 
  DocumentRoot /home/rails/redmine 
  ProxyPass /redmine/ http://localhost:3000/ 
  ProxyPassReverse /redmine/ http://localhost:3000/ 
</VirtualHost> 

apacheの設定はこれだけです。
apacheを再起動して以下のURLにアクセスしてみましょう。
http://localhost/redmine/


Redmineが表示されると思いますが、
何か変なレイアウトになっていませんか?
実はURLロケーションを変更してしまうと
スタイルシートなどのパスがうまく読み取れないようです。
ですのでRedmineのコンフィグを適切に変更する必要があります。


Redmineルートに移動し「config/routes.rb」を開きます。
ファイルに

ActionController::Routing::Routes.draw do |map| 

という記述がありますので、
その次の行に以下の1行を追加します。

ActionController::AbstractRequest.relative_url_root = "/redmine" 

これで基本的な設定は終了です。
mongrelを再起動してRedmineにアクセスすると
今度はレイアウトもきちんと見れるようになっているはずです。


あとはメニューの
「管理」→「設定」
から
「ホスト名」を
localhost/redmine
に設定しておけば
メール通知時などのパスも適切に設定してくれます。


それでは次回、
Redmineを立ち上げた後に行ったほうが良いと思われる
設定について書きたいと思います。



(参考文献)
http://blog.mj-site.net/2007/05/redminemongrel.html
http://syo.cocolog-nifty.com/freely/2007/05/redmineapachepr_6c1c.html