Redmine 2.5をCentOS 6.5にインストールする手順
インストール直後のCentOS 6.5にRedmine 2.5をインストールする手順です。
本手順で作成される環境
本手順で作成される環境は以下のとおりです。
Redmine | Redmine 2.5 |
OS | CentOS 6.5 |
データベース | MySQL 5.1.73 |
webサーバ | Apache 2.2.15(Railsの実行にはPassengerを使用) |
Ruby | 2.0.0 |
システム構成を下図に示します。
CentOSの設定
SELinuxを無効にする
エディタで /etc/sysconfig/selinux
を開き、 SELINUX
の値を disabled
に編集してください。
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への許可している記述の直後としてください。
# 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 epel-releaseパッケージのURL
yum repolist
を実行して表示される一覧に「epel」が含まれていればEPELリポジトリが正しく追加されています。
yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.fairway.ne.jp * epel: epel.mirror.net.in * extras: mirror.fairway.ne.jp * updates: mirror.fairway.ne.jp repo id repo name status base CentOS-6 - Base 6,367 epel Extra Packages for Enterprise Linux 6 - x86_64 10,541< extras CentOS-6 - Extras 14 updates CentOS-6 - Updates 581 repolist: 17,503
開発ツール(Cコンパイラ等)のインストール
yum groupinstall "Development Tools"
RubyとPassengerのビルドに必要なヘッダファイルなどのインストール
yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel
MySQLとヘッダファイルのインストール
yum -y install mysql-server mysql-devel
Apacheとヘッダファイルのインストール
yum -y install httpd httpd-devel
ImageMagickとヘッダファイル・日本語フォントのインストール
yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts
ImageMagickと日本語フォントはガントチャートをPNG形式の画像にエクスポートする機能、添付ファイルのサムネイル画像を作成するのに使われます。これらのインストールを行わなくてもRedmineの実行は可能です。
Rubyのインストール
ソースコードのダウンロード
RubyのオフィシャルサイトのダウンロードページからRuby2.0の最新のソースコードをダウンロードしてください。
http://www.ruby-lang.org/ja/downloads/
curl -O http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p451.tar.gz
Rubyのビルド
ダウンロードしたRubyのtarballを展開し、Rubyのビルドとインストールを行ってください。
tar zxvf ruby-2.0.0-p451.tar.gz cd ruby-2.0.0-p451 ./configure --disable-install-doc make make install cd ..
Redmine 2.5は2014年2月にリリースされたRuby 2.1には対応していません。必ずRuby 2.0をインストールしてください。
--disable-install-doc
を指定するとRubyのドキュメントのインストールを省略でき、作業時間を短縮できます。
インストール後、 ruby -v
を実行してRubyのバージョンを表示させ、インストールが完了したことを確認してください。
ruby -v ruby 2.0.0p451 (2014-02-24 revision 45167) [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のセキュリティ向上のために、初期設定ツール 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 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.5のtarball(.tar.gz)をダウンロードしてください。
http://www.redmine.org/projects/redmine/wiki/Download
curl -O http://www.redmine.org/releases/redmine-2.5.0.tar.gz
svn co http://svn.redmine.org/redmine/branches/2.5-stable /var/lib/redmine
Redmineの展開と配置
ダウンロードしたRedmineのtarballを展開してください。 redmine-2.5.0
というディレクトリが作成され、その下にRedmineを構成するファイル群が作成されます。
tar xvf redmine-2.5.0.tar.gz
Redmineの配置先のディレクトリを決定し、そこへ展開したファイルを移動してください。例えば、 /var/lib/redmine
を配置先とする場合、以下のようにします。
mv redmine-2.5.0 /var/lib/redmine
データベースへの接続設定
Redmineからデータベースへ接続するための設定を記述したファイルを作成します。
以下の内容でRedmineのインストールディレクトリ(例: /var/lib/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を一括してインストールできるツール、bundlerを使用してRedmineで使用するGemをインストールします。Redmineのインストールディレクトリで以下のコマンドを実行してください。
bundle install --without development test
Redmine 2.3より、bundlerは config/database.yml
を参照して適切なデータベースアダプタをインストールするようになりました。 2.2までのように --without
オプションで使用しないデータベースアダプタを指定する必要はなくなりました。
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 PassengerHighPerformance on PassengerStatThrottleRate 10 PassengerSpawnMethod smart RailsAppSpawnerIdleTime 86400 PassengerMaxPreloaderIdleTime 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)