Ruby on Rails の環境を構築し Redmine をインストール 〜 CentOS6

Apache + Passenger を利用して Ruby on Rails を動作させる環境を構築します。passenger は、Rails アプリケーションを Apache 上で動作させるための Apache モジュールです。

また、Ruby on Rails のアプリケーションとして、実際に Redmine をインストールして動かします。Redmine はプロジェクト管理アプリケーションです。

私は、仕事用にも個人用にも Redmine をプロジェクト・タスク管理に使っています。ソフトウェア開発に限らず、いろんなプロジェクトのタスク管理にも使えると思います。旅行の計画や結婚式の準備など、全体のボリュームが大きく細かなタスクがたくさん存在するイベントの管理などにも使えると思います。

利用する Ruby のバージョンは、1.9.3-p392です。rbenv の管理下にあります。

スポンサーリンク

このエントリーは、CentOS 6.4 インストール~設定手順の目次 の一部です。

いったん SELinux を無効化

とりあえず Rails を動かすところまで確認したいので、ここでいったん SELinux を無効にしておきます。

SELINUX=disabled と変更してOS再起動。ただし最終的な本番環境では、SELinux を有効にして運用したいと考えています。SELinux を有効にして Apache + Passenger で Rails アプリを動作させる方法は、また次回以降のエントリーにて。

bundler で rubygems を管理

rubygems のインストールには bundler を使います。bundler は Railsアプリケーションごとに必要な rubygems を一元管理できるツールであり、gem パッケージの依存性の混乱を防いだり、システム領域にインストールする gem パッケージを最小限に抑えたりすることができます。

利用する Ruby のバージョンは、1.9.3-p392 です。まずは、rbenv で ruby を管理している時に rubygems が標準でどこにインストールされるかを調べます。

Ruby バージョンを2.0.0-p0に変更してみます。

1.9.3 に戻しておきます。

INSTALLATION DIRECTORY というのが rubygems がインストールされるディレクトリとなります。rubygems は、rbenv で管理する Ruby のバージョンごとのディレクトリにインストールされることが確認できます。

なので、bundler や passenger など Rails アプリで共通して使用する gem は、従来通り “gem install bundler” などとインストールすれば良いでしょう。rails アプリ固有に必要な gem は bundler で入れていく、という方針で進めます。bundler で入れる gem は、個々の Rails アプリのディレクトリ配下(railsapp/vendor/bundle)にインストールされます。

bundler のインストール

ということで現在の gem list を確認後に bundler をインストール。passenger は後で入れます。

こんな感じで、json や rake などいくつかはデフォルトで入っていました。続いて bundler インストール。

これで、上述の INSTALLATION DIRECTORY に bundler がインストールされ、このRuby環境(Ruby 1.9.3-p392)で動く Rails アプリでは、共通して今インストールした bundler を使用できることになります。

Redmine のインストール

さて Redmine を動かすという目的に戻りましょう。公式ドキュメントを参考にします。この Redmine 公式ドキュメントの前半部分〜MySQLの設定あたりまではすでに終えています。

Redmine 2.3をCentOS 6.4にインストールする手順 | Redmine.JP Blog

必要なパッケージをあらかじめインストール。

Redmine 用データベースとユーザーの作成。database 名は redmine 。ユーザー名、パスワードは任意に変更。

Redmine のインストール。

Redmine 用の gem を bundler でインストール

redmine を配置したディレクトリに移動(cd)して、bundler で gemパッケージのインストールを行います。–path vendor/bundle を指定して、vendor/bundle 以下に gem をインストールします。bundle install は、Gemfile(ここでは、/var/lib/redmine/Gemfile)の記述を元に rubygems パッケージをインストールします。

利用しないグループ develop, test と、利用しないアダプタ postgresql, sqlite3 を without オプションで指定。ちなみに gem パッケージ名は bundler ですが、bundler のコマンドは bundle ~ です。

ここで gem のインストールディレクトリを確認。

これだけで、Ruby1.9.3のシステム共通の gem インストールディレクトリは汚されていない。一方、vendor/bundle 以下。

ずらずら〜っと、たくさんここに入っています。これらの gem は Redmine 固有の gem として扱われます。

bundler で入れた gems を確認する bundle コマンド。

Webrick で Redmine の動作確認

続いてセッションデータ改竄防止用鍵の生成とDBテーブル作成。redmine のインストールディレクトリ(Gemfileがあるディレクトリ)で行います。

iptables でポート3000番を開けて、一旦 Webrick で動作確認を行います。Webrick は Rails に付属する Rubyライブラリで、Rails アプリの動作確認を行うための簡易的なWEBサーバーです。

以上を追加して iptables 再起動。

Webrick起動して動作確認。

ブラウザで「サーバーのIPアドレス:3000」にアクセスして動作確認を行います。

Passenger のインストール

Webrick で Redmine の動作確認ができたら、続いて passeger のインストール。

Passenger の Apache 用モジュールをインストールします。

LoadModule からの行のメッセージを控え、Apache の設定に追加します。以下のコマンドで確認できます。

passenger の設定を Apache に追加。

以上の内容で passenger.conf を作成します。

redmine 配下ディレクトリのユーザー・グループを apache に変更。

以上で、Redmine のインストール作業自体は終了です。次回に、Apache のバーチャルホストを用いて Redmine を動作させるための Apache 設定を行います。

スポンサーリンク
サーバ構築研究会の CentOS 本は、昔からお世話になっています。Linux の教科書は Linux の基本を学ぶのにおすすめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!