CentOS6.x Redmine 2.3.0

CentOS6.xの64ビット版にRedmineをインストールする際の構築記録です



インストールするRedmineのバージョンは、現時点で最新のRedmine-2.3.0をインストールすることにします

Redmineはバージョンにより要求するRubyのバージョンやRailsのバージョンが異なりますので、このあたりを注意しながら作業を進めていきます

Recommend Book

Redmineで楽々プロジェクト管理

RedmineがサポートするRubyのバージョン

以下は、RedmineがサポートするRubyとRailsのバージョンです

Redmine VersionサボートするRuby利用しているRails
2.3.0ruby 1.8.72, 1.9.2, 1.9.3, 2.0.01, jruby-1.6.7, jruby-1.7.2Rails 3.2.13
2.2.4ruby 1.8.72, 1.9.2, 1.9.3, jruby-1.6.7Rails 3.2.13

ちなみに、Redmine-1.4.0以前のバージョンの場合は以下の様になっています

RedmineRubyRailsRackRuby Gems
1.3.xruby 1.8.6, 1.8.7Rails 2.3.14Rack 1.1.xRubyGems <= 1.7
1.2.xruby 1.8.6, 1.8.7Rails 2.3.11Rack 1.1.xRubyGems <= 1.6
1.1.xruby 1.8.6, 1.8.7Rails 2.3.5Rack 1.0.1RubyGems <= 1.4
1.0.xruby 1.8.6, 1.8.7Rails 2.3.5Rack 1.0.1RubyGems <= 1.4
0.9.xruby 1.8.6, 1.8.7Rails 2.3.5Rack 1.0.1RubyGems <= 1.4
0.8.xruby 1.8.6, 1.8.7Rails 2.1.2

方針

インストールは、公式ドキュメント Redmineinstall - Redmineを見ながら進めて行きます

Redmineは現時点で最新の2.3.0を入れることとします(2.3.0-stable)

これに伴い、CentOS6のRubyはバージョンが低いので、Ruby-1.9.3インストールすることとします

インストールするRubyはRPM化してインストールするようにします

Rubyのインストール

続いてRubyをRPM化してインストールします

インストールするRubyは、現時点の最新のRuby-1.9.3-p448とします

RPM化からインストールまでは CentOS6にRuby-1.9.3をRPM化してインストール に記載しています

Redmineのインストール

Redmineをインストールします

インストール先は、/usr/local/redmine-2.3とします

# cd /usr/local/
# svn co http://svn.redmine.org/redmine/branches/2.3-stable redmine-2.3

MEMO

上記は、svnコマンドにてSubversionリポジトリから2.3-stableをチェックアウトしています

svnコマンドがない場合は以下の様にしてコマンドをインストールして下さい

チェックアウトする必要がなければ、tarボールをダウンロード・展開してもいいでしょう

# yum install subversion

空のデータベース作成

Redmineで利用するデータベースを用意します

データベースはMySQL(5.1)を利用することにします

データベース名redmine
キャラクターセットUTF-8
データベース接続ユーザredmine_user
データベース接続ユーザパスワードredmine_pass

MySQLモニターに接続し、空のデータベースとユーザを接続します

# mysql -u root -p
Enter password: *****
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine_user'@'localhost' IDENTIFIED BY 'redmine_pass';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine_user'@'localhost';

Redmineのデータベース接続設定

Redmineのデータベース接続設定を行います

Redmineインストールディレクトリ(/usr/local/redmine-2.3)/config/database.ymlに設定します

config/database.yml.exampleをコピーして、production項を作成したデータベースの内容をあわせます

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine_user
  password: redmine_pass
  encoding: utf8

メール設定

必須ではありませんが、redmineからメール通知などを行う場合はメールの設定が必要です

設定は、Redmineインストールディレクトリ(/usr/local/redmine-2.3)/config/configuration.ymlに対して行います

configuration.yml.exampleをコピーし、以下の様に設定します

  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: SMTPホスト名
      port: ポート番号
      domain: ドメイン名
      authentication: :login
      user_name: "SMTP接続ユーザ名"
      password: "SMTP接続パスワード"

MEMO

Redmineから送信するメールの送信もとメールアドレスの設定は、Redmineログイン後、[管理]-[設定]-[メール通知]で設定します

SMTP認証以外にも、sendmailでの送信設定もあります

送信サーバにGMailを使用する例等、詳しい設定方法については、公式サイト EmailConfiguration - Redmineに記載されています

依存モジュールのインストール

Redmineが利用するモジュールをインストールします

Bundlerのインストール

Bundlerを使って、依存モジュールを一括インストールする為、まずはGemでBundlerをインストールします

# gem install bundler

依存モジュールのインストール

Bundlerを使って、Redmine依存モジュールをインストールします

# cd /usr/local/redmine-2.3
# bundle install --without development test

Bundlerでエラー発生

bundlerで依存パッケージをインストールしたら以下のエラーが発生しました

checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql.h... no
checking for mysql/mysql.h... no
  :     :     :
  :     :     :
An error occurred while installing mysql2 (0.3.13), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.13'` succeeds before bundling.

「checking for mysql.h... no」

どうやら、mysql-develパッケージが必要のようです

# yum install mysql-devel

再度、bundlerを使って依存パッケージをインストールします

# bundle install --without development test

同じ様に、RMagickでもエラーとなったので必要なパッケージをyumでインストールします

# yum install ImageMagick-devel

bundlerが成功するとこんな感じになります

# bundle install --without development test
  :     :     :
  :     :     :
Using rack-openid (1.3.1) 
Using rails (3.2.13) 
Installing rmagick (2.13.2) 
Your bundle is complete!
Gems in the groups development and test were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

セッションデータ暗号化キーの生成

セッションデータ暗号化キーの生成を行います

redmineインストールディレクトリで以下を実行します

# cd /usr/local/redmine-2.3
# rake generate_secret_token

データベースの構築

Redmineが必要なテーブル類をデータベースに作成します

redmineインストールディレクトリで以下を実行します

# cd /usr/local/redmine-2.3
# RAILS_ENV=production rake db:migrate

初期データ投入

データベースに初期データを登録します

redmineインストールディレクトリで以下を実行します

# cd /usr/local/redmine-2.3
# RAILS_ENV=production rake redmine:load_default_data
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja

(*)言語は日本語(ja)を指定します

ディレクトリの作成とパーミッションの設定

添付ファイルの保存場所等、必要なディレクトリを作成します

# cd /usr/local/redmine-2.3
# mkdir -p tmp tmp/pdf public/plugin_assets
# chmod -R 755 files log tmp public/plugin_assets

オーナーの設定

redmineインストールディレクトリのオーナーを設定します

オーナー及びグループをapache:apcheにします

# chown -R apache:apache /usr/local/redmine-2.3

WEBrickによる動作確認

WEBrickを使ってredmineが動作するか確認します

redmineインストールディレクトリで以下を実行します

# ruby script/rails server webrick -e production
=> Booting WEBrick
=> Rails 3.2.13 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2013-10-05 13:32:17] INFO  WEBrick 1.3.1
[2013-10-05 13:32:17] INFO  ruby 1.9.3 (2013-06-27) [x86_64-linux]
[2013-10-05 13:32:17] INFO  WEBrick::HTTPServer#start: pid=5957 port=3000

ブラウザから http://localhost:3000/にアクセスし、Redmineのトップページがでたら成功です

ちなみに、ログインする場合のアカウントは「admin」です。(パスワードも「admin」)

動作が確認できたら、「Ctrl+c」でWEBrickを終了します

Apacheとの連携(Passenger)

Passengerを利用し、redmineをapacheと連携させます

Passengerのインストール

Passengerをインストールします

rootにて以下を実行します

# gem install passenger

httpd-develパッケージのインストール

Passengerのapache用モジュールのビルドに必要パッケージをインストールします

rootにて以下を実行します

# yum install httpd-devel curl-devel

Passengerのapache用モジュールのビルド

Passengerのapache用モジュールのビルドを行います

rootにて以下を実行します

# passenger-install-apache2-module

エンターキーを押して処理を進めます

以下のような画面になった場合、ビルドに失敗しています

Installation instructions for required software

 * To install Curl development headers with SSL support:
   Please install it with yum install curl-devel

If the aforementioned instructions didn't solve your problem, then please take
a look at the Users Guide:

  /usr/lib64/ruby/gems/1.9.1/gems/passenger-4.0.19/doc/Users guide Apache.html

上は、curl-develパッケージがインストールされていない場合の例です。必要に応じてパッケージをインストールし、再度 passenger-install-apache2-module を実行します

最終的に以下のようになれば成功です

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

   LoadModule passenger_module /usr/lib64/ruby/gems/1.9.1/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/lib64/ruby/gems/1.9.1/gems/passenger-4.0.19
   PassengerDefaultRuby /usr/bin/ruby

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!

Press ENTER to continue.


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

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

   <VirtualHost *:80>
      ServerName www.yourhost.com
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /somewhere/public    
      <Directory /somewhere/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      </Directory>
   </VirtualHost>

And that's it! You may also want to check the Users Guide for security and
optimization tips, troubleshooting and other useful information:

  /usr/lib64/ruby/gems/1.9.1/gems/passenger-4.0.19/doc/Users guide Apache.html

Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
https://www.phusionpassenger.com

Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.

Apacheの設定(Passengerモジュールのload)

Passengerモジュールをロードする設定をapacheに対して行います

/etc/http/conf.d/passenger.confを新規に作成します

ファイルの内容は、前項の最後にプリントされた内容を記載します

LoadModule passenger_module /usr/lib64/ruby/gems/1.9.1/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
PassengerRoot /usr/lib64/ruby/gems/1.9.1/gems/passenger-4.0.19
PassengerDefaultRuby /usr/bin/ruby

既存ドキュメントルートのサブパスとしてredmineを運用する

http://localhost/redmine/ のURLでredmineにアクセスできるようにするには以下の設定を行います

RailsBaseURIの指定

仮想ホスト定義等のapache設定ファイルに以下の一文を追加します

<VirtualHost *:80>
    :    :    :
    DocumentRoot "/var/www/html"

    RailsBaseURI /redmine

    :    :    :
    :    :    :
</VirtualHost>

シンボリックリンクの作成

上記例の場合、ドキュメントルートは「/var/www/html」なので、以下の様にredmineインストールディレクトリ/publicへのシンボリックリンクを作成します

# ln -s /usr/local/redmine-2.3/public /var/www/html/redmine

apache再起動後、ブラウザから http://localhost(またはホスト名)/redmine/ にアクセスしてredmineのトップ画面がでれば成功です

ユーザ名「admin」、パスワード「admin」でログインできます

MEMO

シンボリックリンクを同様に作ることにより、複数のredmineを同一仮想ホスト上で運用できます

ん?ディレクトリリストが出るんですが・・・

SELinuxが有効(Enforcing)の場合、上記URLでアクセスするとredmineのトップ画面ではなくディレクトリリストが表示されます

とりあえず動作を確認したいのであれば、setenforceコマンドでSELinuxを一時的に無効にして確認しましょう

ドキュメントルートをredmineのページにする場合

ドキュメントルートをredmineのページにする場合は、redmineインストールディレクトリ/publicをドキュメントルートとなる様に、仮想ホスト定義等のapache設定ファイルを以下の様に設定します

<VirtualHost *:80>
    :    :    :
    DocumentRoot /usr/local/redmine-2.3/public
    
       # This relaxes Apache security settings.
       AllowOverride all
       # MultiViews must be turned off.
       Options -MultiViews
    
    :    :    :
    :    :    :
</VirtualHost>

apache再起動後、ブラウザから http://localhost(またはホスト名)/ にアクセスしてredmineのトップ画面がでれば成功です

ユーザ名「admin」、パスワード「admin」でログインできます

これにて完了

これでインストールは完了です

Redmineはチケット駆動型のシステム開発ではとても便利なツールです

Wikiもついていますし、Subversionとの連携も可能です。チーム開発する場合はぜひ使ってみてください

今回は触れませんでしたが、便利なプラグインもいろいろとそろっていますので、そのうちまとめてみたいと思います

関連ページ