Readmine導入に挑戦

出典: Wikimura

Tracを導入してみたは良いものの、管理をするにはroot権限が必要だったり、基本的にシングルプロジェクトにしか対応して無かったりと、少々不満があった。 これらの機能があるらしいRedmineの導入に挑戦する。

目次

インストール

[1]を参考に、インストールする。

Rubyインストール

これまでインストールしていなかったので、Ruby一式をインストールする。 ProliantはAthron64 X2なので以下のようにする。

yum install ruby.x86_64 ruby-devel.x86_64 ruby-irb.x86_64 ruby-ri.x86_64 ruby-rdoc.x86_64 ruby-libs.x84_64

1.8.7インストール

データベースには、難しい設定がいらないらしいsqliteを使用したい。sqlite3-rubyというモジュールのインストールには、1.8.7以上が必要らしい。一方で、最新の1.9.1ではsoapモジュールに不具合があるらしい。ということで、 [2]ではredmine0.8.6を、Ruby1.8.7で動かすことを推奨している。

yumでは1.8.5しか提供されていない。そこで、1.8.7はソースからビルドすることにする。

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.bz2
tar xvf ruby-1.8.7-p174.tar.bz2
cd ruby-1.8.7-p174
./configure --prefix=/usr/local/pkg/ruby-1.8.7
make
make install

RubyGemsインストール

パッケージインストーラのRubyGemsをインストール。 ソースは[3]から最新版を持ってくる。

wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
tar xvf rubygems-1.3.5.tgz
cd rubygems-1.3.5
/usr/local/pkg/ruby-1.8.7/bin/ruby setup.rb

その他モジュールのインストール

gemコマンドを使用して、必要なモジュールをインストールする。

  • rails: フレームワーク
  • sqlite3-ruby: データベース操作用
  • passenger: Apacheから実行するのに必要

Railsインストール

0.8.6ではRails 2.1.2を使用するらしい。最新ではないので以下のようにバージョンを指定してインストールする。

gem install -v=2.1.2 rails

Sqlite3-rubyインストール

これのインストールのために、Ruby 1.8.7が必要だった。

gem install sqlite3-ruby

Passengerインストール

Apache用モジュールを生成するため、apxsが必要。yumでapacheをインストールしたなら、以下でインストールしておく。

yum install httpd-devel

Passengerは[4]を参考にインストール。ビルド前に、apxsの場所とhttpdへのパスを張る必要がある。インストールが終わるとhttpd.confの設定方法が表示される。

export APXS=/usr/sbin/apxs
export PATH=/usr/sbin:$PATH
/usr/local/pkg/ruby-1.8.7/bin/passenger-install-apache2-module
--------------------------------------------
The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/local/pkg/ruby-1.8.7/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/pkg/ruby-1.8.7/lib/ruby/gems/1.8/gems/passenger-2.2.5
   PassengerRuby /usr/local/pkg/ruby-1.8.7/bin/ruby

--------------------------------------------
Deploying a Ruby on Rails application: an example

Suppose you have a Ruby on Rails application in /somewhere. Add a virtual host
to your Apache configuration file, and set its DocumentRoot to
/somewhere/public, like this:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
   </VirtualHost>

Redmineインストール

http://redmine.jp/tech_note/install/

svn co http://redmine.rubyforge.org/svn/tags/0.8.6 ./RedmineSandbox
cd RedmineSandbox
rm `find . -name .svn` -r -f
vi config/database.yml
--------------------------------------------------------------------------------
production:
  adapter: sqlite3
  dbfile: db/redmine.db
  timeout: 5000
--------------------------------------------------------------------------------
/usr/local/pkg/ruby-1.8.7/bin/rake db:migrate RAILS_ENV=production
/usr/local/pkg/ruby-1.8.7/bin/rake load_default_data RAILS_ENV=production

chown -R webmaster:apache ../RedmineSandbox
chmod -R 770 ../RedmineSandbox

Apache設定

Passengerインストール時に出てきた設定例を参考に、Apache設定ファイルを編集する。 /etc/httpd/conf.d以下においた*.confは自動でインクルードされるので、redmine.confを作る。

vi /etc/httpd/conf.d/redmine.conf
--------------------------------------------------------------------------------
LoadModule passenger_module /usr/local/pkg/ruby-1.8.7/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/pkg/ruby-1.8.7/lib/ruby/gems/1.8/gems/passenger-2.2.5
PassengerRuby /usr/local/pkg/ruby-1.8.7/bin/ruby
Listen 45000

<VirtualHost *:45000>
	DocumentRoot /usr/local/share/RedmineSandbox/public
</VirtualHost>
--------------------------------------------------------------------------------

参考文献

  1. Redmineのインストールと設定
  2. Redmineをインストール
  3. RubyGemsソース
  4. Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用