Redmine/Redmine 2.6をCentOS 5.11にインストールする手順 のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Redmine/Redmine 2.6をCentOS 5.11にインストールする手順 へ行く。
- 1 (2015-02-28 (土) 19:47:02)
- 2 (2015-02-28 (土) 20:44:10)
- 3 (2015-03-02 (月) 11:42:40)
インストール直後のCentOS 5.11にRedmine 2.6をインストールする手順です。
(作業日:2015/03/02)
目次
本手順で作成される環境
本手順で作成される環境は以下のとおりです。
Redmine | Redmine 2.6 |
OS | CentOS 5.11 |
データベース | MySQL 5.0.95 |
webサーバ | Apache 2.2.3(Railsの実行にはPassengerを使用) |
Ruby | 2.1.4-p265 |
Rails | 3.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