Top/Redmine/Redmine 2.6をCentOS 5.11にインストールする手順

Redmine/Redmine 2.6をCentOS 5.11にインストールする手順 のバックアップ(No.3)


インストール直後のCentOS 5.11にRedmine 2.6をインストールする手順です。
(作業日:2015/03/02)

目次

本手順で作成される環境

本手順で作成される環境は以下のとおりです。

RedmineRedmine 2.6
OSCentOS 5.11
データベースMySQL 5.0.95
webサーバApache 2.2.3(Railsの実行にはPassengerを使用)
Ruby2.1.4-p265
Rails3.2.19

CentOSの設定

SELinuxを無効にする

エディタで /etc/sysconfig/selinux を開き、 SELINUX の値を disabled に編集してください。

# cd /etc/sysconfig
# cp selinux selinux.org
# vi selinux
  • ファイル
    SELINUX=enforcing
    ↓
    SELINUX=disabled

編集後、CentOSを再起動して下さい。

# reboot

再起動後、 getenforce コマンドを実行してSELinuxが無効になったことを確認してください。
Disabled と表示されればSELinuxは無効になっています。

# getenforce
Disabled

iptablesでHTTPを許可

CentOS 6.4の初期状態ではiptables(ファイアウォール)が有効になっており、外部からサーバ上の80/tcpポート(HTTP)に接続することができません。クライアントのwebブラウザからアクセスできるようiptablesの設定を変更します。

エディタで /etc/sysconfig/iptables を開き、80/tcpへの接続を許可するための以下の記述を追加してください。追加位置は、22/tcpへの許可している記述の直後としてください。

# cd /etc/sysconfig
# cp iptables iptables.org
# vi iptables
  • 元ファイル
    # Firewall configuration written by system-config-securitylevel
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :RH-Firewall-1-INPUT - [0:0]
    -A INPUT -j RH-Firewall-1-INPUT
    -A FORWARD -j RH-Firewall-1-INPUT
    -A RH-Firewall-1-INPUT -i lo -j ACCEPT
    -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
    -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
    -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    ←ここに挿入
    -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
    COMMIT
  • 挿入行
    -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

設定が終わったらiptablesを再起動してください。

# service iptables restart

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

Redmineを使用するにあたり、必要なパッケージのインストールを行います。

EPELリポジトリの登録

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

まず、下記のページで最新の epel-release パッケージのURLを確認してください。(CentOS 5.x用)
http://dl.fedoraproject.org/pub/epel/5/x86_64/repoview/epel-release.html

「Packages」の下に書かれている「epel-release-5-4.noarch」といったリンクのURLをコピーしてください。

http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

その後、以下のように rpm コマンドを実行してください。CentOSのyumリポジトリにEPELが追加されます。

# rpm -Uvh epel-releaseパッケージのURL
(例)
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
Retrieving http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
warning: /var/tmp/rpm-xfer.G5d3wg: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

yum repolist を実行して表示される一覧に「epel」が含まれていればEPELリポジトリが正しく追加されています。

# yum repolist
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* epel: ftp.tsukuba.wide.ad.jp
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
epel                                                     | 3.7 kB     00:00
epel/primary_db                                          | 2.8 MB     00:01
repo id           repo name                                               status
base              CentOS-5 - Base                                         2,791
epel              Extra Packages for Enterprise Linux 5 - i386            5,395
extras            CentOS-5 - Extras                                         272
updates           CentOS-5 - Updates                                        247
repolist: 8,705

開発ツール(Cコンパイラ等)のインストール

# yum groupinstall "Development Tools"

途中、以下のような質問が出ますが、「y」を入力し「Enter」を押してください。

Total download size: 2.5 M
Is this ok [y/N]:

「Complete!」が表示されればインストール成功です。

RubyとPassengerのビルドに必要なヘッダファイルなどのインストール

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

「Complete!」が表示されればインストール成功です。

MySQLとヘッダファイルのインストール

# yum -y install mysql-server mysql-devel

「Complete!」が表示されればインストール成功です。

Apacheとヘッダファイルのインストール

# yum -y install httpd httpd-devel

「Complete!」が表示されればインストール成功です。

ImageMagickとヘッダファイル・日本語フォントのインストール

注:ImageMagickと日本語フォントはガントチャートをPNG形式の画像にエクスポートする機能、添付ファイルのサムネイル画像を作成するのに使われます。これらのインストールを行わなくてもRedmineの実行は可能です。

CentOS5.11のyumで導入可能なImageMagickのバージョンは6.2.8とRMagickが必要とする6.4.9より低いです。下記の方法では、CentOS5.xではImageMagick6.2.8が入ってしまうのでNGです。

# yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts

その為、既存バージョンをremove後、新バージョンをソースコードからビルドインストールします。

# yum remove ImageMagick ImageMagick-devel
# yum install libjpeg-devel libpng-devel
# cd /usr/local/src
# wget http://www.imagemagick.org/download/ImageMagick.tar.gz
# tar xvfz ImageMagick.tar.gz
# cd ImageMagick-6.9.0-7
# ./configure
# make
# make install
# ldconfig /usr/local/lib

その後、whichコマンドで以下のように表示されればOKです。

# which convert
/usr/local/bin/convert

Rubyのインストール

ソースコードのダウンロード

RubyのオフィシャルサイトのダウンロードページからRuby2.1の最新のソースコードをダウンロードしてください。
http://www.ruby-lang.org/ja/downloads/

# cd /usr/local/src
# wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz

※CentOSからうまくサイトが見えない場合は、別のマシンで取得してからコピーしてください。

ダウンロードしたRubyのtarballを展開し、Rubyのビルドとインストールを行ってください。
(--disable-install-doc を指定するとRubyのドキュメントのインストールを省略でき、作業時間を短縮できます。)

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

インストール後、 ruby -v を実行してRubyのバージョンを表示させ、インストールが完了したことを確認してください。

# ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [i686-linux]

bundlerのインストール

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

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

「--no-rdoc --no-ri」はドキュメントのインストールを省略するためのオプションです。
ちなみにファイル ~/.gemrc に以下の記述を行っておくとコマンドラインで明示的に指定しなくてもよくなり便利です。

gem: --no-ri --no-rdoc

MySQLの設定

デフォルトキャラクタセットをutf8に設定

エディタで /etc/my.cnf を開き、 [mysqld] セクションに character-set-server=utf8 を、 [mysql] セクションに default-character-set=utf8 を追加してください。

# cd /etc
# cp my.cnf my.cnf.org
# vi my.cnf
  • ファイル
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Default to using old password format for compatibility with mysql 3.x
    # clients (those using the mysqlclient10 compatibility package).
    old_passwords=1
    
    # Disabling symbolic-links is recommended to prevent assorted security risks;
    # to do so, uncomment this line:
    # symbolic-links=0
    
    character-set-server=utf8     ←ここに追加
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    [mysql]                      ←ここに追加
    default-character-set=utf8   ←ここに追加

MySQLの起動および自動起動の設定

# service mysqld start
# chkconfig mysqld on

/etc/my.cnf への設定が反映されていることの確認

MySQLのシステム変数 character_set_* のうち、 character_set_filesystem と character_sets_dir 以外の値がすべて utf8 になっていることを確認してください。

latin1 になっている項目があれば、 /etc/my.cnf の設定が正しいか確かめてください。

# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.95 Source distribution

Copyright (c) 2000, 2011, 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.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

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.01 sec)

mysql> exit
Bye

rootユーザーのパスワード変更・匿名ユーザー削除ほかセキュリティ向上

MySQLのセキュリティ向上のために、初期設定ツール mysql_secure_installation を実行してrootパスワードの設定や不要なユーザー・データベースの削除を行います。

# mysql_secure_installation
      :
    (中略)
      :
Enter current password for root (enter for none):   (そのままEnterキーを押す)
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] y   (yを入力してEnterキーを押す)
New password:   (MySQLのrootユーザーに新たに設定するパスワードを入力)
Re-enter new password:   (新パスワードを再入力)
Password updated successfully!
Reloading privilege tables..
 ... Success!
      :
    (中略)
      :
Remove anonymous users? [Y/n] y  (※匿名ユーザーを削除)
 ... Success!
      :
    (中略)
      :
Disallow root login remotely? [Y/n] y  (※rootユーザーの接続元をlocalhostに限定)
 ... Success!
      :
    (中略)
      :
Remove test database and access to it? [Y/n] y  (※testデータベースを削除)
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
      :
    (中略)
      :
Reload privilege tables now? [Y/n] y  (※これまでの変更を直ちに適用)
 ... Success!

なお、MySQLのrootユーザーに設定した新パスワードは、今後MySQLにrootで接続してデータベースの管理操作を行うときに入力を求められます。

Redmine用データベースとユーザーの作成

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

※ ******** の部分は任意のパスワードを設定してください。このパスワードは後述のdatabase.ymlの設定で使用します。

Redmineのインストール

Redmineのダウンロード

下記のページからRedmine 2.6のtarball(.tar.gz)をダウンロードしてください。

http://www.redmine.org/projects/redmine/wiki/Download

# cd /usr/local/src
# wget http://www.redmine.org/releases/redmine-2.6.2.tar.gz

tarballをダウンロードするのではなく次のようにSubversionリポジトリからソースコードを取得することもできます。

svn co http://svn.redmine.org/redmine/branches/2.6-stable /var/lib/redmine

Redmineの展開と配置

ダウンロードしたRedmineのtarballを展開してください。 redmine-2.6.2 というディレクトリが作成され、その下にRedmineを構成するファイル群が作成されます。

# cd /usr/local/src
# tar xvf redmine-2.6.2.tar.gz

Redmineの配置先のディレクトリを決定し、そこへ展開したファイルを移動してください。例えば、 /var/lib/redmine を配置先とする場合、以下のようにします。

# mv redmine-2.6.2 /var/lib/redmine

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

Redmineからデータベースへ接続するための設定を記述したファイルを作成します。

以下の内容でRedmineのインストールディレクトリ(例: /var/lib/redmine/config)以下に database.yml を作成してください。

# cd /var/lib/redmine/config
# vi database.yml
  • ファイル
    production:
      adapter: mysql2
      database: db_redmine
      host: localhost
      username: user_redmine
      password: ********
      encoding: utf8

※ ******** 部分は、MySQL上に作成したRedmineユーザーのパスワードです。
※ database.yml.example に設定例がありますので参考にしてください。

設定ファイル config/configuration.yml の作成

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

以下の内容でRedmineのインストールディレクトリ以下に config/configuration.yml ファイルを作成してください。

# cd /var/lib/redmine/config
# vi configuration.yml

production:

 email_delivery:
   delivery_method: :smtp
   smtp_settings:
     address: "localhost"
     port: 25
     domain: 'example.com'
 rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

※ example.com の部分は、Redmineを実行するサーバのFQDNとしてください。
※ config/configuration.yml.example に設定例がありますので参考にしてください。

configuration.yml ではアップロードされたファイルの保管場所や、データベースの暗号化なども設定できます。

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

アプリケーションが必要とするGemを一括してインストールできるツール、bundlerを使用してRedmineで使用するGemをインストールします。
基本的にbundlerですべてのGemが入る前提ですが、自環境ではインストール前にrakeやi18nやrmagickが必要がなりましたので、あらかじめそれらも導入しておきます。
Redmineのインストールディレクトリで以下のコマンドを実行してください。

# cd /var/lib/redmine
# gem install rake -v '10.4.2'
      :
    (中略)
      :
Overwrite the executable? [yN]  y     (yを入力してEnterキーを押す)
      :
    (中略)
      :
1 gem installed
# gem install i18n -v '0.6.11'
      :
    (中略)
      :
1 gem installed
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# env | grep PKG_CONFIG_PATH
# gem install rmagick -v '2.13.4'
      :
    (中略)
      :
# bundle install --without development test
      :
    (中略)
      :
Use `bundle show [gemname]` to see where a bundled gem is installed.

※なお、Redmine 2.3より、bundlerは config/database.yml を参照して適切なデータベースアダプタをインストールするようになりました。 2.2までのように --without オプションで使用しないデータベースアダプタを指定する必要はなくなりました。

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

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

# cd /var/lib/redmine
# bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate

参考ページ

ページ新規作成

新しいページはこちらから投稿できます。

TOP