FAT47の底辺インフラ議事録

学んだことのメモ帳です

CentOS5.6にRedmine1.2.1のインストール

RedmineとはRuby on Railsで作られたオープンソースのプロジェクト管理ソフトウェアです。
タスク管理や進捗管理、グループでの情報共有が可能です。

事前準備
Ruby Enterprise Editionのダウンロード
http://www.rubyenterpriseedition.com/download.html

tar zxvf ruby-enterprise-1.8.7-2011.03.tar.gz
ruby-enterprise-1.8.7-2011.03/installer --dont-install-useful-gems --no-dev-docs

 --dont-install-useful-gemsは、必要なgemパッケージはあとで手動でいれるので自動インストールをはずします。
 --no-dev-docsは開発者ドキュメントなのでいらないです。

インストーラを実行するとビルドに必要な環境のチェックがはじまります。
なにかエラーが出た場合は必要なソフトウェアをインストールしましょう。
チェックが済むと、インストール先の指定ができるので、

Target directory

Where would you like to install Ruby Enterprise Edition to?
(All Ruby Enterprise Edition files will be put inside that directory.)

[/opt/ruby-enterprise-1.8.7-2011.03] : /usr/local/

このように/usr/local/を指定してあげましょう。

gemパッケージのインストール
Redmine1.2を実行するには、それぞれのパッケージのバージョンを指定しないとうまく動きません。
↓のそれぞれのパッケージのバージョンは変えないでください。

gem install rack -v=1.1.1 --no-rdoc --no-ri
gem install rake -v=0.8.7 --no-rdoc --no-ri
gem install i18n -v=0.4.2 --no-rdoc --no-ri
gem install mysql --no-rdoc --no-ri

MySQLの設定
my.cnfにutf8の文字設定をします。

vi /etc/my.cnf
[mysqld]
character-set-server=utf8 

※私の環境はMySQL5.5なのでこの設定ですが、それ以外の人は[mysql]と[mysqld]セクションにdefault-character-set=utf8を設定してください。

mysql再起動

/etc/init.d/mysqld restart

mysqlredmineユーザとDBを作成する

mysql -uroot -p

mysql> create database redmine default character set utf8;
mysql> grant all on redmine.* to redmine identified by 'redmine';
mysql> flush privileges;
mysql> exit;

redmineダウンロード

cd /home/work
wget http://rubyforge.org/frs/download.php/75097/redmine-1.2.1.tar.gz

展開と配置

tar zxvf redmine-1.2.1.tar.gz 
mv redmine-1.2.1 /usr/local/
cd /usr/local/redmine-1.2.1

コンフィグファイルの設定

cp config/database.yml.example config/database.yml
vim config/database.yml

production:
  adapter: mysql
  database: db_redmine
  host: localhost
  username: redmine
  password: *****
  encoding: utf8
cp config/configuration.yml.example config/configuration.yml
production:
email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: 'サーバのFQDN'

Redmineの初期設定とDBのテーブル作成

rake generate_session_store
	(in /usr/local/redmine-1.2.1)
rake db:migrate RAILS_ENV=production
	(in /usr/local/redmine-1.2.1)

↓のようにエラーになる場合があります。

rake aborted!
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

(See full trace by running task with --trace)

と表示されてマイグレートに失敗する場合があります。
エラーメッセージを見るとmysql.sockが見つからないようなので、指定してあげる必要があります。

mysqladmin -p version

Enter password: 
mysqladmin  Ver 8.42 Distrib 5.5.15, for Linux on x86_64
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.5.15-log
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 23 min 19 sec

Threads: 1  Questions: 1125  Slow queries: 0  Opens: 534  Flush tables: 1  Open tables: 64  Queries per second avg: 0.804

UNIX socketの項目に/tmp/mysql.sockと書いてありました。
database.ymlファイルに設定を追記しましょう。

vim config/database.yml
production:
  adapter: mysql
  database: db_redmine
  host: localhost
  username: redmine
  password: ******
  encoding: utf8
  socket: /tmp/mysql.sock

これでもう一度実行するとうまくいくはずです。

rake db:migrate RAILS_ENV=production

==  AddIssuesIsPrivate: migrating =============================================
-- add_column(:issues, :is_private, :boolean, {:default=>false, :null=>false})
   -> 0.0085s
==  AddIssuesIsPrivate: migrated (0.0086s) ====================================

==  AddRepositoriesExtraInfo: migrating =======================================
-- add_column(:repositories, :extra_info, :text)
   -> 0.0217s
==  AddRepositoriesExtraInfo: migrated (0.0218s) ==============================

※さらに別のエラーが出た人。

Rake aborted!
undefined method `address=' for ActionMailer::Base:Class 

となってしまった人は、configuration.ymlで追加した内容の段落を間違えてしまった為だと思われます。

production:
email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: 'サーバのFQDN'

↑のsmtp_settings:の次の行からの3行は半角スペース2個分の段落になっています。
ちゃんと段落になっているか設定ファイルを確認しましょう。

Passengerのインストール
Apache上でRailsアプリケーションの実行に必要なPassengerをインストールします。

gem install passenger --no-rdoc --no-ri

Passengerのapache用モジュールインストール

passenger-install-apache2-module

apacheをソースからビルドしてインストールした環境では、APX2とPATHの環境変数を設定する必要があります。

export APXS2=/usr/local/apache2/bin/apxs
export PATH=/usr/local/apache2/bin:$PATH

この二つを設定してからもう一度実行してみてください。

完了すると以下のメッセージが表示されます。
太字部分はapacheの設定ファイルに記述するのでコピーしておきましょう。

--------------------------------------------
The Apache 2 module was successfully installed.

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

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.9
   PassengerRuby /usr/local/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.

Apacheの設定

vim /usr/local/apache2/conf/httpd.conf

一番下の行に先ほどコピーした三行(LoadModule〜〜)を貼り付ける

apache再起動

/etc/init.d/httpd restart

Apache上でRedmineを利用する設定
所有ユーザの変更

chown -R httpd:httpd /usr/local/redmine-1.2.1/

シンボリックリンクの作成
redmineディレクトリにあるpublicディレクトリを、Apacheで公開しているディレクトリにシンボリックリンクを張ります

ln -s /usr/local/redmine-1.2.1/public /usr/local/apache2/htdocs/redmine

apacheの設定
以下の設定を追記します。

vim /usr/local/apache2/conf/httpd.conf
RailsBaseURI /redmine
/etc/init.d/httpd restart

http://サーバ名/redmine
にアクセスして以下のような画面が表示されてば成功です。

右上のログインを押しましょう。
初期設定のアカウントはユーザ名admin パスワードadminでログインできるはずです。


これ以降の初期設定に関しては下記サイトをご参照下さい。
http://redmine.jp/tech_note/first-step/admin/