Redmine 1.4をCentOS 6にインストールする手順
インストール直後のCentOS 6にRedmine 1.4をインストールする手順です。
Redmine 1.4の新機能は以下の記事を御覧ください。
Redmine 1.4のCHANGELOG (新機能のみ・日本語訳付き) | Redmine.JP Blog
本手順で作成される環境
本手順で作成される環境は以下のとおりです。
Redmine | Redmine 1.4 |
OS | CentOS 6 |
データベース | MySQL 5.1.61 |
webサーバ | Apache 2.2.15(Railsの実行にはPassengerを使用) |
Ruby | 1.9 |
Ruby Gems | 1.8.11(Ruby 1.9に同梱のもの) |
Ruby on Rails | 2.3.14 |
システム構成を下図に示します。
CentOSの設定
SELinuxを無効にする
SELinuxが有効な状態では、SELinuxを適切に設定しなければPassengerでRedmineを実行できません。本手順ではSELinuxを無効にすることで対処します。
エディタで /etc/sysconfig/selinux
を開き、 SELINUX
の値を disabled
に編集してください。
SELINUX=enforcing ↓ SELINUX=disabled
編集後、CentOSを再起動して下さい。
# reboot
再起動後、 getenforce
コマンドを実行してSELinuxが無効になったことを確認してください。 Disabled
と表示されればSELinuxは無効になっています。
# getenforce Disabled
iptablesでHTTPを許可
CentOS 6では初期状態でiptables(ファイアウォール)が有効になっており、外部からサーバ上の80/tcpポート(HTTP)に接続することができません。このままではwebサーバを立ち上げてもクライアントから接続することができませんので、iptablesの設定を変更します。
エディタで /etc/sysconfig/iptables
を開き、80/tcpへの接続を許可するための以下の記述を追加してください。追加位置は、22/tcpへの許可している記述の直後としてください。
# 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
設定が終わったらiptablesを再起動してください。
# /etc/init.d/iptables restart
必要なパッケージのインストール
Redmineを使用するにあたり、必要なパッケージのインストールを行います。
EPELリポジトリの登録
Rubyのビルド時に必要なパッケージがEPEL(エンタープライズ Linux 用の拡張パッケージ)にありますのでリポジトリをEPELリポジトリを追加します。
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
開発ツール(Cコンパイラ等)
# yum groupinstall "Development Tools"
RubyとPassengerのビルドに必要なヘッダファイルなど
# yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
MySQLとヘッダファイル
# yum install mysql-server mysql-devel
Apacheとヘッダファイル
# yum install httpd httpd-devel
ImageMagickとヘッダファイル
# yum install ImageMagick ImageMagick-devel
Rubyのインストール
これまで当サイトのRedmineインストール記事ではRuby Enterprice Editionを使用してきましたが、Redmine 1.4からRuby 1.9に対応しましたので公式のインタプリタをビルドしてを使用します。
ソースコードのダウンロード
下記のページからRuby 1.9系のソースコードをダウンロードしてください。
http://www.ruby-lang.org/ja/downloads/
Rubyのビルド
ダウンロードしたRubyのtarballを展開して、configureを実行してください。
# tar zxvf ruby-1.9.3-p125.tar.gz # cd ruby-1.9.3-p125 # ./configure
Rubyのビルドとインストールをします。
# make # make install # make clean
インストール後、rubyコマンドを実行して正しくインストールされたことを確認してください。
# ruby -v ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]
bundlerのインストール
Redmineが使用するGemを一括インストールするためのツール、bundlerをインストールします。
# gem install bundler --no-rdoc --no-ri
MySQLの設定
デフォルトキャラクタセットをutf8に設定
エディタで /etc/my.cnf
を開き、 [mysqld]
セクションに character-set-server=utf8
を、 [mysql]
セクションに default-character-set=utf8
を追加してください。
[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 innodb_file_per_table query-cache-size=16M 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の起動および自動起動の設定
# /etc/init.d/mysqld start # chkconfig mysqld on
/etc/my.cnf
への設定が反映されていることの確認
MySQLのシステム変数に設定されている値が
character_set_filesystem
character_sets_dir
以外すべてutf8になっていることを確認してください。
latin1
になっている項目があれば、 /etc/my.cnf
の設定が正しいか確かめてください。
# 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/ | +--------------------------+----------------------------+
rootユーザーのパスワード変更・匿名ユーザー削除
# mysql -uroot 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 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;
※ ******** の部分は任意のパスワードを設定してください。このパスワードは後述のdatabase.ymlの設定で使用します。
Redmineのインストール
Redmineのダウンロード
下記URLからRedmine1.4のtarball(.tar.gz)をダウンロードしてください。
http://rubyforge.org/frs/?group_id=1850
Redmineの展開と配置
ダウンロードしたRedmineのtarballを展開してください。 redmine-1.4.0
というディレクトリが作成され、その下にRedmineを構成するファイル群が作成されます。
# tar zxvf redmine-1.4.0.tar.gz
Redmineの配置先のディレクトリを決定し、そこへ展開したファイルを移動してください。例えば、 /var/lib/redmine
を配置先とする場合、以下のようにします。
# mv redmine-1.4.0 /var/lib/redmine
データベースへの接続設定
Redmineからデータベースへ接続するための設定を記述したファイルを作成します。
以下の内容で REDMINE_ROOT/config/
に database.yml
を作成してください。
production: adapter: mysql2 database: db_redmine host: localhost username: user_redmine password: ******** encoding: utf8
※ ******** 部分は、MySQL上に作成したRedmineユーザーのパスワードです。
※ config/database.yml.example
に設定例がありますので参考にしてください。
メールサーバへの接続設定
Redmineからメールサーバへ接続するための設定を記述したファイルを作成します。
以下の内容で REDMINE_ROOT/config/
に configuration.yml
ファイルを作成してください。
production: email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 domain: 'example.com'
※ example.com
の部分は、Redmineを実行するサーバのFQDNとしてください。
※ config/configuration.yml.example
に設定例がありますので参考にしてください。
configuration.yml
ではメールサーバへの接続設定のほかにもアップロードされたファイルの保管場所や、データベースの暗号化などが設定できます。詳しくは configuration.yml によるRedmineの設定 をご覧ください。
Gemパッケージのインストール
Redmine 1.4より前のバージョンでは1つずつGemをインストールする必要がありましたが、Redmine 1.4からはbundlerが採用されているので使用するGemを一括してインストールすることができるようになりました。
Redmineが使用するGemをインストールします。
# bundle install --without development test postgresql sqlite
※ 本手順ではデータベースに MySQL
を使用するため、 PostgreSQL
,SQLite
使用時に必要となるGemのインストールを行わないようにしています。
Redmineの初期設定とデータベースのテーブル作成
セッションデータ暗号化用鍵の生成とテーブル作成を行います。
# rake generate_session_store # rake db:migrate RAILS_ENV=production
Passengerのインストール
Apache上でRedmineなどのRailsアプリケーションの実行に必要なPhusion Passengerをインストールします。
# gem install passenger --no-rdoc --no-ri
PassengerのApache用モジュールのインストール
インストーラを実行し画面の指示に従って操作してください。
# passenger-install-apache2-module
インストールが完了すると以下の様に表示されます。太字の部分はApacheに設定すべき内容なので控えておきます。表示される設定情報は passenger-install-apache2-module --snippet
を実行して後で参照することもできます。
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-3.0.12/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.12 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の設定
Passengerの設定を追加
Passengerの設定をApacheに追加します。 /etc/httpd/conf/httpd.conf
に直接追加してもよいですが、管理しやすいようPassenger関係の設定は別ファイルにまとめます。
以下の内容で /etc/httpd/conf.d/passenger.conf
を作成してください。
# Passengerの基本設定。 # passenger-install-apache2-module --snippet を実行して表示される設定を使用。 # 環境によって設定値が異なりますので以下の3行はそのまま転記しないでください。 # LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.12/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.12 PassengerRuby /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のチューニングのための設定を追加(任意)。 # PassengerMaxPoolSize 20 PassengerMaxInstancesPerApp 4 PassengerPoolIdleTime 3600 PassengerUseGlobalQueue on PassengerHighPerformance on PassengerStatThrottleRate 10 RailsSpawnMethod smart RailsAppSpawnerIdleTime 86400 RailsFrameworkSpawnerIdleTime 0
Apacheの起動および自動起動の設定
# /etc/init.d/httpd start # chkconfig httpd on
Apache上のPassengerでRedmineを実行するための設定
Redmineを配置したディレクトリ以下のファイルを、Apacheを実行するユーザー・グループ(CentOSの場合はいずれも"apache")で読み書きできるよう、オーナーを変更します。
# chown -R apache:apache /var/lib/redmine
どのような形態(URL)でRedmineを利用するかによって設定が異なります。三つのパターンを例に挙げます。
パターン1: webサーバをRedmine専用として使用
webサーバのルートディレクトリでRedmineを実行するための設定です。「http://サーバIPアドレスまたはホスト名/」でRedmineにアクセスできます。
エディタで /etc/httpd/conf/httpd.conf
を開き DocumentRoot
をRedmineのpublicディレクトリ(例: /var/lib/redmine/public
)に変更してください。
DocumentRoot "/var/www/html" ↓ DocumentRoot "/var/lib/redmine/public"
設定変更後、Apacheを再起動してください。
# /etc/init.d/httpd configtest # /etc/init.d/httpd graceful
パターン2: サブディレクトリでRedmineを実行
URLのサブディレクトリでURLにアクセスできるように設定します。同じサーバでRedmine以外のアプリケーションを実行する場合や、複数のRedmineを実行する場合に便利な設定です。
シンボリックリンクの作成
Apacheの DocumentRoot
に指定されているディレクトリ(通常は /var/www/html
)に、Redmineのpublicディレクトリ(例: /var/lib/redmine/public
)に対するシンボリックリンクを作成します。シンボリックリンクの名称は、URLのディレクトリ名部分で使いたい名前(例:redmine)にしてください。
# ln -s /var/lib/redmine/public /var/www/html/redmine
Apacheへの設定追加
Apacheの設定ファイル(/etc/httpd/conf/httpd.conf
)もしくは前述の手順で作成したPassengerの設定ファイル(/etc/httpd/conf.d/passenger.conf
)などに以下の設定を追加します。
RailsBaseURI /redmine
設定後、Apacheを再起動してください。
# /etc/init.d/httpd configtest # /etc/init.d/httpd graceful
パターン3: バーチャルホストでRedmineを実行
特定のバーチャルホストでRedmineを実行する設定です。Apacheに以下の設定を追加します。
NameVirtualHost *:80 ... <VirtualHost *:80> ServerName www.example.jp DocumentRoot /var/lib/redmine/public </VirtualHost>
設定後、Apacheを再起動してください。
# /etc/init.d/httpd configtest # /etc/init.d/httpd graceful
インストール完了後の初期設定
インストールが完了しwebブラウザ経由でRedmineにアクセスできる状態になったら、日本語環境で使うための設定変更やユーザーの追加・プロジェクトの追加などを行います。
インストール後の初期設定手順については以下をご覧ください。
- Redmineを使い始めるための初期設定 (Redmine.JP)