Redmine 2.2をCentOS 6.3にインストールする手順
インストール直後のCentOS 6.3にRedmine 2.2をインストールする手順です。
Redmine 2.2についての詳細は以下の記事をご覧ください。
本手順で作成される環境
本手順で作成される環境は以下のとおりです。
Redmine | Redmine 2.2 |
OS | CentOS 6.3 |
データベース | MySQL 5.1.61 |
webサーバ | Apache 2.2.15(Railsの実行にはPassengerを使用) |
Ruby | 1.9.3 |
Ruby Gems | 1.8.23(Ruby 1.9.3に同梱のもの) |
Ruby on Rails | 3.2.9 |
システム構成を下図に示します。
CentOSの設定
SELinuxを無効にする
エディタで /etc/sysconfig/selinux
を開き、 SELINUX
の値を disabled
に編集してください。
SELINUX=enforcing ↓ SELINUX=disabled
編集後、CentOSを再起動して下さい。
# reboot
再起動後、 getenforce
コマンドを実行してSELinuxが無効になったことを確認してください。 Disabled
と表示されればSELinuxは無効になっています。
# getenforce Disabled
iptablesでHTTPを許可
CentOS 6.3の初期状態では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を再起動してください。
# service iptables restart
必要なパッケージのインストール
Redmineを使用するにあたり、必要なパッケージのインストールを行います。
EPELリポジトリの登録
Rubyのビルドに必要なlibyamlをyumでインストールできるようにするために、EPEL(エンタープライズ Linux 用の拡張パッケージ)リポジトリを追加します。
まず、下記のページで最新の epel-release
パッケージのURLを確認してください。
http://dl.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html
URLの確認方法は以下の画像を参考にしてください。
その後、以下のように rpm
コマンドを実行してください。CentOSのyumリポジトリにEPELが追加されます。
# rpm -Uvh 確認したURL
開発ツール(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 # yum install ipa-pgothic-fonts
ImageMagickと日本語フォントはガントチャートをPNG形式の画像にエクスポートするのに使われます。
Rubyのインストール
ソースコードのダウンロード
RubyのオフィシャルサイトのダウンロードページからRuby 1.9.3のソースコードをダウンロードしてください。
http://www.ruby-lang.org/ja/downloads/
Rubyのビルド
ダウンロードしたRubyのtarballを展開して、configureを実行してください。
# tar zxvf ruby-1.9.3-p327.tar.gz # cd ruby-1.9.3-p327 # ./configure --disable-install-doc
--disable-install-doc
を指定するとドキュメントのインストールを省略できます。
Rubyのビルドとインストールをします。
# make # make install
インストール後、rubyコマンドを実行して正しくインストールされたことを確認してください。
# ruby -v ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-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
を追加してください。
[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 start # chkconfig mysqld on
/etc/my.cnf
への設定が反映されていることの確認
MySQLのシステム変数 character_set_*
のうち、@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/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql> exit
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;
※ ******** の部分は任意のパスワードを設定してください。このパスワードは、上記手順を実行した後はmysqlにrootユーザーで接続する際に入力を求められます。
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のダウンロード
下記のページからRedmine 2.2のtarball(.tar.gz)をダウンロードしてください。
http://rubyforge.org/frs/?group_id=1850
Redmineの展開と配置
ダウンロードしたRedmineのtarballを展開してください。 redmine-2.2.0
というディレクトリが作成され、その下にRedmineを構成するファイル群が作成されます。
# tar zxvf redmine-2.2.0.tar.gz
Redmineの配置先のディレクトリを決定し、そこへ展開したファイルを移動してください。例えば、 /var/lib/redmine
を配置先とする場合、以下のようにします。
# mv redmine-2.2.0 /var/lib/redmine
svn co http://svn.redmine.org/redmine/branches/2.2-stable /var/lib/redmine
データベースへの接続設定
Redmineからデータベースへ接続するための設定を記述したファイルを作成します。
以下の内容でRedmineのインストールディレクトリ以下に config/database.yml
を作成してください。
production: adapter: mysql2 database: db_redmine host: localhost username: user_redmine password: ******** encoding: utf8
※ ******** 部分は、MySQL上に作成したRedmineユーザーのパスワードです。
※ config/database.yml.example
に設定例がありますので参考にしてください。
設定ファイル config/configuration.yml の作成
Redmineからメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルを作成します。
以下の内容でRedmineのインストールディレクトリ以下に config/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
ではアップロードされたファイルの保管場所や、データベースの暗号化なども設定できます。詳しくは configuration.yml によるRedmineの設定 をご覧ください。
Gemパッケージのインストール
アプリケーションが必要とするGemを一括してインストールできるツール、bunderを使用してRedmineで使用するGemをインストールします。Redmineのインストールディレクトリで以下のコマンドを実行してください。
# bundle install --without development test postgresql sqlite
本手順ではデータベースにMySQLを使用するため、 PostgreSQLとSQLite用のデータベースアダプタをインストールしないよう --without
オプションで指定しています。もしSQLiteを使用する場合は次のようにしてください。
# bundle install --without development test postgresql mysql
Redmineの初期設定とデータベースのテーブル作成
セッションデータ改竄防止用鍵の生成とテーブル作成を行います。Redmineのインストールディレクトリで以下のコマンドを実行してください。
# bundle exec rake generate_secret_token # RAILS_ENV=production bundle exec rake db:migrate
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.17/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.17 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.
passenger-install-apache2-module --snippet
により表示されたものを使用してください。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.17/ext/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.17 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のチューニングのための設定を追加(任意)。 # 詳しくはPhusion Passenger users guide(http://www.modrails.com/documentation/Users%20guide%20Apache.html)をご覧ください。 PassengerMaxPoolSize 20 PassengerMaxInstancesPerApp 4 PassengerPoolIdleTime 3600 PassengerUseGlobalQueue on PassengerHighPerformance on PassengerStatThrottleRate 10 PassengerSpawnMethod smart RailsAppSpawnerIdleTime 86400 RailsFrameworkSpawnerIdleTime 0
Apacheの起動および自動起動の設定
# service 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
)などに以下の設定を追加します。
RackBaseURI /redmine
設定後、Apacheを再起動してください。
# service httpd configtest # service 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)