Locked

CentOS_TIPS_010

Redmine3.2構築メモ

  • 公式サイトURL

http://redmine.jp/

  • 参考URL

http://blog.redmine.jp/articles/3_2/install/centos/

バージョン情報

ここでは、以下のバージョンについて記載しています。

$ cat /etc/redhat-release
CentOS release 5.11 (Final)

$ cat /etc/redhat-release
CentOS release 6.7 (Final)

なお、記事作成時Redmineのバージョンは3.2.0です。
3.2.1以降へのバージョンアップは末尾に追記しました。

rubyインストール

CentOS5/CentOS6標準のrubyはバージョン1.8系なので、要件を満たすため2.2.4のパッケージを作成/インストールします。

  • ソースダウンロード

http://www.ruby-lang.org/ja/downloads/

  • 参考SPECファイル(OS標準と同じパッケージ名で作成/1.8系と共存する場合は要修正)

https://nazx.jp/o/SPECS/ruby.spec

rubyのmakeにはlibyaml-develが必要なので、CentOS5の場合はrpmforgeからインストールしておきます。

# yum --enablerepo=rpmforge install libyaml-devel

自前パッケージのインストール後。

$ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]

$ gem -v
2.4.5.1

bundlerをインストールします。

# gem install bundler --no-document

オプション「--no-document」にてドキュメントのビルド/インストールを除外できます。

MySQL設定

MySQLは、OS標準のものを使用します。
設定はWordPressの使用時に行ったものと同じ内容でした。
以下の内容になっていることを確認/必要に応じて修正します。

$ more /etc/my.cnf
[mysqld]
...
character-set-server=utf8

[mysql]
default-character-set=utf8

$ mysql -u root -p
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)

データベースを作成します。
以下の例ではDB名「reddb」、ユーザ名「redmine」、パスワード「PASSWORD」としていますので、適宜、変更してください。

$ mysql -u root -p
mysql> create database reddb default character set utf8;
mysql> grant all on reddb.* to redmine@localhost identified by 'PASSWORD';
mysql> flush privileges;
mysql> exit;

ImageMagickの入れ替え

CentOS5の場合、標準のImageMagick-develでは古過ぎるため、最新版をremiからインストールします。
なお、標準のImageMagickはアンインストールする必要がありますので、既に使用している場合は注意/予め削除してください。

# yum --enablerepo=remi,rpmforge install ImageMagick-last-devel

remiのパッケージを入れると、例えば、graphvizのバージョンがOS標準のものに固定され(依存関係を持ってい)ます。
プラグイン対応等で必要になるようであれば、公式サイトの最新版を個別にインストールした方が良いかもしれません。

http://graphviz.org/

graphvizは以下のファイルを取得しyumで管理することも可能です。

http://graphviz.org/graphviz-rhel.repo

ImageMagickの方は、rpmパッケージはあるものの、リポジトリ形式ではないため、localinstallするか自前でパッケージ管理することになります。

http://www.imagemagick.org/download/

https://github.com/webmproject/libwebp

Redmineインストール

SVNリポジトリからチェックアウト/取得します。
以下の例では「/var/lib/redmine」として作成しています。

# cd /var/lib
# svn co http://svn.redmine.org/redmine/branches/3.2-stable redmine
# cd redmine
# cp config/database.yml.example config/database.yml
# cp config/configuration.yml.example config/configuration.yml
# bundle install --without development test --path vendor/bundle

データベース設定を行います。

--- /dev/null
+++ config/database.yml
@@ -0,0 +1,7 @@
+production:
+  adapter: mysql2
+  database: reddb
+  host: localhost
+  username: redmine
+  password: "PASSWORD"
+  encoding: utf8

必要に応じて「config/configuration.yml」に設定を追記/以下の例ではメール配送関係。

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: "example.jp"

データベースを初期化します。

# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate

以下のメッセージが出力される場合htmlentitiesのバージョンが低いようです。

.../htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"

これはrubygems.org上のrbpdfがhtmlentities-4.3.1を要求してしまうため、htmlentitiesのみバージョンアップするのは困難そうです。

    rbpdf (~> 1.19.0) was resolved to 1.19.0, which depends on
      htmlentities (= 4.3.1)

致命的な問題が発生する訳では無さそうなので、ログに出力されるのを無視してもよさそうです。

或いは個別に最新版をインストールする/パッチで回避する等の対応を行います。

  • rbpdf公開サイト

https://github.com/naitoh/rbpdf

Gemfileを見る限りでは、htmlentitiesの依存関係は無さそうですが、こちらのインストールは試してはいません。

htmlentities-4.3.4の内容を参考に、パッチで解消しています。

--- vendor/bundle/ruby/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb.org
+++ vendor/bundle/ruby/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb
@@ -463,12 +463,10 @@
     'incare'         => 0x2105,   # ?                  CARE OF
     'infin'          => 0x221e,   # ∞       xhtml      INFINITY
     'inodot'         => 0x0131,   # ?   dup            LATIN SMALL LETTER DOTLESS I
-    'inodot'         => 0x0131,   # ?   dup            LATIN SMALL LETTER DOTLESS I
     'int'            => 0x222b,   # ∫       xhtml      INTEGRAL
     'intcal'         => 0x22ba,   # ?                  INTERCALATE
     'IOcy'           => 0x0401,   # Ё                  CYRILLIC CAPITAL LETTER IO
     'iocy'           => 0x0451,   # ё                  CYRILLIC SMALL LETTER IO
-    'Iodot'          => 0x0130,   # ?                  LATIN CAPITAL LETTER I WITH DOT ABOVE
     'Iogon'          => 0x012e,   # ?                  LATIN CAPITAL LETTER I WITH OGONEK
     'iogon'          => 0x012f,   # ?                  LATIN SMALL LETTER I WITH OGONEK
     'Iota'           => 0x0399,   # Ι   dup xhtml      GREEK CAPITAL LETTER IOTA

以下のコマンドでデフォルトデータをロード/インストール完了後にウェブ管理画面からも同等の操作が可能です。

# RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

Passengerインストール

Redmineをapache上で動作させるため、Phusion Passenger(mod_rails for Apache)をインストールします。

# gem install passenger --no-document
# passenger-install-apache2-module --auto

apacheのサブディレクトリとして使用するよう設定します。
バーチャルホストで使用する場合等のケースは、参考URL先を参照してください。

--- /dev/null
+++ /etc/httpd/conf.d/redmine.conf
@@ -0,0 +1,6 @@
+LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.26/buildout/apache2/mod_passenger.so
+<IfModule mod_passenger.c>
+  PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.26
+  PassengerDefaultRuby /usr/local/bin/ruby
+  RackBaseURI /redmine
+</IfModule>

記述例は、以下のコマンドで出力可能です。

$ passenger-install-apache2-module --snippet

apacheを再起動させてインストール完了です。

# chown -R apache:apache /var/lib/redmine
# ln -s /var/lib/redmine /var/www/html/redmine
# service httpd configtest && service httpd restart

http://example.jp/redmine/としてアクセス可能なことを確認します。

管理者アカウント/パスワードがデフォルト「admin/admin」なので、アクセス出来次第、管理者アカウントのパスワードを変更します。
デフォルトデータをロードする場合、ログイン後、上部メニュー「管理」を押下し、ページ内の指示に従います。

バージョンアップ

Redmine3.2.1がリリースされたのでバージョンアップを行います。

  • 参考URL

http://redmine.jp/guide/RedmineUpgrade/

データベース等のバックアップを取得の際は、上記記事を参考にされると良いでしょう。
また、バージョンアップに伴い「ロールと権限」に変更が行われる場合があるので、現在の設定を確認/スクリーンショットの取得等を行っておきます。

Redmineを非公開にします。

# rm /var/www/html/redmine && touch /var/www/html/redmine

最新のRedmineを取得/gemを更新します。

# cd /var/lib/redmine
# svn update
# grep ^== doc/CHANGELOG | head -2
== Redmine changelog
== 2016-03-13 v3.2.1

# bundle update

データベースを更新/キャッシュとセッションを初期化します。

# RAILS_ENV=production bundle exec rake db:migrate
# RAILS_ENV=production bundle exec rake redmine:plugins:migrate

# bundle exec rake tmp:cache:clear tmp:sessions:clear

apacheを再起動/Redmineを公開させます。

# chown -R apache:apache /var/lib/redmine
# service httpd restart
# rm /var/www/html/redmine && ln -s /var/lib/redmine /var/www/html/redmine

「情報」画面によりバージョン情報を確認/「ロールと権限」を確認します。

Environment:
  Redmine version                3.2.1.stable.15273
  Ruby version                   2.2.4-p230 (2015-12-16) [x86_64-linux]
  Rails version                  4.2.5.2
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.6.11
  Git                            1.7.1
  Filesystem                     
Redmine plugins:
  plantuml                       0.3.0

Redmine3.2.2/3.2.3/3.2.4/3.2.5/3.2.6へのバージョンアップも同様に実施しました。

Environment:
  Redmine version                3.2.2.stable.15430
  Ruby version                   2.2.4-p230 (2015-12-16) [x86_64-linux]
  Rails version                  4.2.5.2
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.6.11
  Git                            1.7.1
  Filesystem                     
Redmine plugins:
  full_text_search               0.0.1
  plantuml                       0.3.0

Environment:
  Redmine version                3.2.3.stable.15582
  Ruby version                   2.2.4-p230 (2015-12-16) [x86_64-linux]
  Rails version                  4.2.5.2
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.6.11
  Git                            1.7.1
  Filesystem                     
Redmine plugins:
  full_text_search               0.0.1
  plantuml                       0.3.0

Environment:
  Redmine version                3.2.4.stable.16111
  Ruby version                   2.2.4-p230 (2015-12-16) [x86_64-linux]
  Rails version                  4.2.7.1
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.6.11
  Git                            1.7.1
  Filesystem                     
Redmine plugins:
  full_text_search               0.0.1
  plantuml                       0.3.0

Environment:
  Redmine version                3.2.5.stable.16226
  Ruby version                   2.2.4-p230 (2015-12-16) [x86_64-linux]
  Rails version                  4.2.7.1
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.6.11
  Git                            1.7.1
  Filesystem                     
Redmine plugins:
  full_text_search               0.0.1
  plantuml                       0.3.0

Environment:
  Redmine version                3.2.6.stable.16545
  Ruby version                   2.2.4-p230 (2015-12-16) [x86_64-linux]
  Rails version                  4.2.7.1
  Environment                    production
  Database adapter               Mysql2
SCM:
  Subversion                     1.6.11
  Git                            1.7.1
  Filesystem                     
Redmine plugins:
  full_text_search               0.0.1
  plantuml                       0.3.0