scribble.yuyat.jp

Redmine 1.4 を CentOS 5 にインストールしたときの作業メモ

Posted at 03 May 2012

目標

古いバージョンで動いている Redmine をアップグレードしたいので, 必要な手順等について調べる.

でもまずは新規インストールができるようになる.

構成

以下のような構成にします.

  • さくら VPS (980)
  • CentOS release 5.8 (Final)
  • Ruby 1.9.3-p125
  • Redmine 1.4.1
  • Apache 2
  • Phusion Passenger (mod_passenger)

さくら VPS 月額 980 円でメモリ 1GB HDD 100GB とかすごいですね.

以下の記事を参考にしました.

元の記事との相違点

基本的にグローバルな環境をなるべく汚さないことを意識しています.

  • Ruby は ruby-build と rbenv で入れる
  • RMagick は諦める (yum で入る ImageMagick が古い)
  • Gem は ./vendor ディレクトリにインストールする
  • Passenger も Bundler でインストールする
  • Redmine は tarball でなく Git でインストールする
  • chown -R apache:apache はしない (しなくても問題無く動作する)

事前準備

GCC などをインストールする.

$ sudo yum -y update
$ sudo yum -y install gcc kernel-devel zlib-devel openssl-devel readline-devel curl-devel libyaml-devel

EPEL を追加する

CentOS は大体に置いて, 提供されるパッケージのバージョンが古い印象がありますね.

そのあたりの事情について以下の記事が大変参考になりました.

  • EPEL リポジトリを活用して CentOS 5.x で Python 2.6 をインストールする (http://d.hatena.ne.jp/t2y-1979/20110430/1304140587)

つまりは EPEL というリポジトリを使うようにすると, CentOS でも割と新しめのバージョンのパッケージを, 割と安心してインストールできるということでしょうか.

というわけで入れてみました.

$ sudo rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/5/i386/epel-release-5-4.noarch.rpm

先に紹介した記事同様, デフォルトでは使用しないように /etc/yum.repos.d/epel.repo で epel の enabled を 0 にしています.

MySQL のインストール

$ sudo yum -y install mysql-server mysql-devel

設定は基本的にブログ記事と同様.
ユーザ名・データベース名は redmine とした.

Apache のインストール

$ sudo yum -y install httpd httpd-devel

Git のインストール

$ sudo yum -y install git --enablerepo epel

Ruby のインストール

CentOS 5 だと Ruby 1.9 をパッケージで入れることはできなさげなので, ruby-build と rbenv を使ってホームディレクトリ内にインストールすることにする.
それぞれのインストール手順は README の通りなので省略する.
ruby-build は root としてインストールし, rbenv は redmine ユーザとしてインストールする.

ruby-build と rbenv のインストールが完了したら rbenv で Ruby 1.9.3 をインストールする.

$ rbenv install 1.9.3-p125
$ rbenv global 1.9.3-p125

Redmine が Bundler に対応したのでそれも入れる.

$ gem install bundler --no-ri --no-rdoc

Redmine のインストール

GitHub のミラーリポジトリから入れる.

ホームディレクトリなどにインストールしてしまうと Apache から実行するときに困るので, 今回は /var/redmine にインストールする.

$ cd /var
$ sudo mkdir redmine
$ sudo chown redmine:redmine redmine
$ cd redmine
$ git clone https://github.com/redmine/redmine.git .
$ git checkout 1.4-stable

./config ディレクトリの設定については概ねブログ記事の通りだが, Ruby 1.9 の場合は adapter を mysql2 にしないといけないことに注意が必要.

Gem パッケージのインストール

Bundler を使う.
元の記事では 指定していないが –path オプションを指定してローカルディレクトリにインストールしている.
(指定しないと gem コマンドでインストールするのと同じ領域にインストールされてしまう)

yum で入る ImageMagick のバージョンが古くて RMagick が入れられないので, rmagick も無効化.
Optional な gem なので問題無い.

$ bundle install --without development test postgresql sqlite rmagick --path vendor/bundler

Redmine の初期設定

元の記事では rake を直接実行しているが, gem を ./vendor にインストールしているので bundle exec rake する必要がある.

$ bundle exec rake generate_session_store
$ bundle exec rake db:migrate RAILS_ENV=production

Phusion Passenger のインストール

Passenger も Bundler で入れてみる.

Gemfile.local を以下のようにする.

gem "passenger"

そしてインストール.

$ bundle update
$ bundle exec passenger-install-apache2-module

適当に進めると mod_passenger がビルドされる. Passenger の設定は /etc/httpd/conf.d/passenger.conf に記載した.

基本的にはブログ記事の通り.
mod_passenger.so 等に関する設定は bundle exec passenger-install-apache2-module –snippet すれば確認できる.

Apache の設定

VirtualHost 等を適当に設定する.
DocumentRoot を ./public (もちろん実際はフルパス) に指定するぐらいで OK.

とりあえず普通のインストールができたので, 次は古いバージョンからのアップグレードとか, Bundler を使ったプラグインのインストールとかについて調べる.

Home