Redmine2.3.2をCentOS6.4にインストールする。

以下のページを参考にしてRedmineをインストールしたんだが、ところどころ違う箇所があるのでメモっておく。

http://blog.redmine.jp/articles/2_3/installation_centos/

SELinuxを無効にする

/etc/sysconfig/selinuxを開き編集して再起動

# vi /etc/sysconfig/selinux

SELINUX=enforcing
↓
SELINUX=disabled

# reboot now


以下のコマンドでSELinuxが無効(Disabled)になっていることを確認。

# getenforce

iptablesでHTTPを許可

ファイアウォールのデフォ値では外部からHTTPに接続できん。
つ〜わけでiptablesの設定を以下の通りに変更してサービス再起動。

# vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
 *filter
INPUT ACCEPT [0
0]
FORWARD ACCEPT [0
0]
OUTPUT ACCEPT [0
0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

# service iptables restart

EPELリポジトリの登録

Rubyのビルドに必要なlibyamlをyumでインストールできるようにするために、EPEL(エンタープライズ Linux 用の拡張パッケージ)リポジトリを追加する。
まず以下ののURLを開く。

http://dl.fedoraproject.org/pub/epel/6/i386/

で、2013年7月14日時点でepel-release-6-8.noarchとなっているリンクURLをコピー。
その後は以下のコマンドで、CentOSのyumリポジトリにEPELを追加する。

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

必要なパッケージをインストール

以下のコマンドで既にインストール済みの確認する。

# yum grouplist

すると開発ツールは既にインストール済みなので飛ばす。

で、RubyとPassengerのビルドに必要なヘッダファイルなどを以下のコマンドでインストール。

# yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel

MySQLとApacheはインストール済みなので飛ばす。
日本語フォントもインストール済みなので飛ばす。

あとはImageMagickのみ。

# yum install ImageMagick ImageMagick-devel

Rubyのインストール

RubyのオフィシャルサイトのダウンロードページからRuby 1.9.3の最新のソースコードをダウンロードする。

# mkdir soft
# cd soft
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz


ダウンロードしたRubyのtarballを展開してconfigureを実行後、ビルドとインストール。
これが結構時間かかる。。。

# tar zxvf ruby-1.9.3-p448.tar.gz
# cd ruby-1.9.3-p448
# ./configure --disable-install-doc
# make
# make install


インストール後、rubyコマンドを実行して正しくインストールされたことを確認

# ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [i686-linux]


続いてRedmineが使用するGemを一括インストールするためのツール、bundlerをインストール。

# gem install bundler --no-rdoc --no-ri

MySQLの設定

まず以下のようにしてMySQLのデフォルトキャラセットをutf8に設定する。

# vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8

innodb_file_per_table
query-cache-size=16M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8

その後、以下の通りMySQLを再起動および自動起動設定。

# service mysqld restart
# chkconfig mysqld on


以下のようにしてMySQLの設定が反映されているか確認。

# mysql -uroot
mysql> show variables like 'character_set%';

 +--------------------------+----------------------------+
 | Variable_name            | Value                      |
 +--------------------------+----------------------------+
 | character_set_client     | utf8                       |
 | character_set_connection | utf8                       |
 | character_set_database   | utf8                       |
 | character_set_filesystem | binary                     |
 | character_set_results    | utf8                       |
 | character_set_server     | utf8                       |
 | character_set_system     | utf8                       |
 | character_sets_dir       | /usr/share/mysql/charsets/ |
 +--------------------------+----------------------------+

8 rows in set (0.00 sec)


そしてそのままrootユーザーのパスワード変更・匿名ユーザー削除を実施。

mysql> use mysql;
mysql> update user set password=password('********') where user = 'root';
mysql> delete from user where user = '';
mysql> flush privileges;
mysql> exit;


※ ******** の部分は任意のパスワードを設定するんだよ。


続いて、Redmine用データベースとユーザーの作成する。

# mysql -uroot -p
Enter password:
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine identified by '********';
mysql> flush privileges;
mysql> exit;


※ ******** の部分は任意のパスワードを設定するんだよ。

Redmineのインストール

ようやくRedmineをインストール。
なんと本日2013年7月15日、Ver.2.3.2がリリースされとりました。
こいつをゲットして解凍します。

# cd /root/soft/
# wget http://rubyforge.org/frs/download.php/77023/redmine-2.3.2.tar.gz
# tar zxvf redmine-2.3.2.tar.gz

解凍したRedmineを/var/lib/redmineとして配置する。

# mv redmine-2.3.2 /var/lib/redmine


次にRedmineからデータベースへ接続するための設定を記述したファイルを作成する。
一応サンプルがあるので、そいつをコピーして作成。

# cd /var/lib/redmine/config
# cp database.yml.example database.yml
# vi database.yml

production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: ********
  encoding: utf8


※ ******** の部分はさっきRedmine用データベースとユーザー作成で設定したパスワードだよ。


ちなみにviで複数行をコメントアウトしたい場合は、

  1. コメントアウトしたい先頭行でCtrl+vで矩形選択モードへ
  2. j(下)でコメントアウトしたい最終行へ
  3. :を押す
  4. :'<,'>って出てるので、s/^/#/って押す。

これでOK。べ、べんり〜


続いてRedmineからメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルを作成する。

# cp configuration.yml.example configuration.yml
# vi configuration.yml

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
      authentication: :plain
      user_name: *****.*****@gmail.com
      password: ********

  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf


※正直、ここは後で設定するんで適当です。


bundlerを使用してRedmineで使用するGemをインストール。

# cd /var/lib/redmine
# bundle install --without development test

Redmineの初期設定とデータベースのテーブル作成

Redmineのインストールディレクトリで以下のコマンドを叩いて、セッションデータ改竄防止用鍵の生成とテーブルを作成する。

# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate


後はPassengerのインストールやらApacheの設定やらが残ってるんだが、ちと休憩。
長ぇぇぇ。。。やべぇ、疲れた。。。


(休憩中)


さて、Redmineのインストールの続き。
ここからはhttpd周りの設定だす。

Passengerのインストール

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

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


インストーラを実行してPassengerのApache用モジュールをインストールする。

# 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/lib/ruby/gems/1.9.1/gems/passenger-4.0.8/buildout/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.8 PassengerDefaultRuby /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の設定

Apacheの設定にPassengerの設定を追加する。
ただし、Passengerの設定はApacheの設定ファイルhttpd.confとは別のファイルにまとめる。

# vi /etc/httpd/conf.d/passenger.conf

# Passengerの基本設定。
# passenger-install-apache2-module --snippet を実行して表示される設定を使用。
#
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.8/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.8
PassengerDefaultRuby /usr/local/bin/ruby

# Passengerが追加するHTTPヘッダを削除するための設定(任意)。
#
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加(任意)。
# 詳しくはPhusion Passenger users guide(http://www.modrails.com/documentation/Users%20guide%20Apache.html)を参照
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0


※赤字のところが、参考にしたサイトとは違うのです。


あとはApache自体のServerNameがまだ設定されていないので以下の通り設定。

# vi /etc/httpd/conf/httpd.conf

#ServerName www.example.com:80
ServerName mngsvr01:80


以下のコマンドでApacheの起動および自動起動の設定を実施

# service httpd start
# chkconfig httpd on

Apache上のPassengerでRedmineを実行するための設定

RedmineをApache実行ユーザー・グループで読み書きできるようにオーナーを変更する。

# chown -R apache:apache /var/lib/redmine


さて、Redmineの実行のさせ方だが、このサーバーではRedmineだけでなく他にもアプリを動かしたいのでサブディレクトリでRedmineを実行させよう、そうしよう。
つ〜わけで、/var/www/htmlの下にRedmineのpublicへのシンボリックリンクを作成する。

# ln -s /var/lib/redmine/public /var/www/html/redmine


あと/etc/httpd/conf.d/passenger.confに以下を追加。

# vi /etc/httpd/conf.d/passenger.conf

RackBaseURI /redmine


設定後、Apacheを再起動する。

# service httpd configtest
# service httpd graceful


そして!
以下のURLにアクセス!

http://[サーバーのIPアドレス]/redmine/

そしたら、こうだ!



Yes!

よし、次回はRedmineの設定などを。。。