Redmine

提供: ArchWiki
2024年4月11日 (木) 20:31時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (英語版より記事を追加)
ナビゲーションに移動 検索に移動

関連記事

Redmineフリーかつオープンソースの、ウェブベースのプロジェクト管理課題追跡ツールです。複数のプロジェクト・サブプロジェクトを扱うことができます。機能 としてプロジェクト wiki やフォーラム、時間管理、柔軟なロールベースのアクセス制御があります。カレンダーガントチャートも搭載しており、プロジェクトのデッドラインを視覚的に把握できます。Redmine は様々なバージョン管理システムと統合できるように、リポジトリブラウザや差分ビューアを内蔵しています。

Redmine は Ruby on Rails フレームワークを使用して書かれています。クロスプラットフォームで動作し、複数のデータベースと34もの言語をサポートしています。

Installation

This document will guide you through the suggested installation process of Redmine.

If for some reason you want to setup redmine manually, it is recommended to follow the official Installation Guide.

Although it is possible to run Redmine on its own for testing purposes, for production use it requires an SQL database as well as a web server. As database it is recommended to use MariaDB or PostgreSQL. The supported web servers are

インストール

ビルドとインストール

AUR から redmine パッケージをダウンロード・ビルド・インストールしてください。

ノート: ビルド方法はパッケージのビルドに書かれています。AUR のページを読むことを強く推奨します。

データベースの設定

次に、Redmine がデータを保存するのに使用するデータベースを作成します。以下、データベースとそのユーザーの名前を redmine とします。適宜置き換えてください。

ノート: MariaDBMySQL はバイナリ互換性があるため設定も同じです。

データベースの作成

データベースとユーザーを作成して権限を設定 (MariaDB と MySQL >= 5.0.2):

# mysql -u root -p
CREATE DATABASE redmine CHARACTER SET UTF8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

5.0.2 以前のバージョンの MariaDB と MySQL の場合:

# mysql -u root -p
CREATE DATABASE redmine CHARACTER SET UTF8;
GRANT ALL PRIVILEGES ON redmine.* TO'redmine'@'localhost' IDENTIFIED BY 'my_password';

PostgreSQL の場合:

CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;

SQLServer の場合:

SQL Server Management Studio の中でデータベースやユーザーを作成することもできますが、SQLCMD でコマンドラインを使うこともできます:

USE [master]
GO
-- Very basic DB creation
CREATE DATABASE [REDMINE]
GO
-- Creation of a login with SQL Server login/password authentication and no password expiration policy
CREATE LOGIN [REDMINE] WITH PASSWORD=N'redminepassword', DEFAULT_DATABASE=[REDMINE], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
-- User creation using previously created login authentication
USE [REDMINE]
GO
CREATE USER [REDMINE] FOR LOGIN [REDMINE]
GO
-- User permissions set via roles
EXEC sp_addrolemember N'db_datareader', N'REDMINE'
GO
EXEC sp_addrolemember N'db_datawriter', N'REDMINE'
GO
ノート: If you want to use additional environments, you must create separate databases for each one (for example: development and test).

データベースのアクセス設定

作成したデータベースにアクセスするように Redmine を設定する必要があります。/usr/share/webapps/redmine/config/database.yml.exampledatabase.yml にコピーしてください:

# cd /usr/share/webapps/redmine/config
# cp database.yml.example database.yml

そしてファイルを編集して "production" 環境のデータベース設定を変更してください ("development" と "test" 環境の設定を行うこともできます)。

MariaDB や MySQL データベースの例:

nano database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  port: 3307   #If your server is not running on the standard port (3306), set it here, otherwise this line is unnecessary.
  username: redmine
  password: my_password
ノート: ruby1.9 では "adapter" の値は mysql2 に設定する必要があり、ruby1.8 や jruby の場合は mysql に設定する必要があります。

PostgreSQL データベースの例:

nano database.yml
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: my_password
  encoding: utf8
  schema_search_path: <database_schema> (default - public)

SQL Server データベースの例:

nano database.yml
production:
  adapter: sqlserver
  database: redmine
  host: localhost #Set not default host (localhost) here, otherwise this line is unnecessary.
  port: 1433 #Set not standard port (1433) here, otherwise this line is unnecessary.
  username: redmine
  password: my_password

Ruby gem

Redmine は複数の RubyGems のインストールを必要としますが Gem のインストール方法は複数あります。

  • prototype-rails
  • unicorn (アプリケーションサーバー)
  • mysql2 (MySQL の高性能な Ruby バインディング)
  • coderay
  • erubis
  • fastercsv
  • rdoc
  • net-ldap
  • rack-openid

MySQL 以外のデータベースサーバーを使用する場合や、Unicorn 以外のアプリケーションサーバーを使う場合は、mysql2unicorn を適当な Gem に置き換えてください。

Gem の追加 (任意)

Redmine コアによって必要とされない gem をロードする必要がある場合 (例: Puma, fcgi)、redmine のルートディレクトリに Gemfile.local という名前のファイルを作成してください。bundle install の実行時に自動的にロードされます:

# nano Gemfile.local
gem 'puma'

前にインストールした gem のチェック

Redmine の開発者は Redmine に Bundler を同梱しており、pacman のパッケージ管理と同じように gem を管理できます。以下のコマンドを実行して Redmine の依存関係が完全に満たされているか確認してください:

# bundle install --without development test

Redmine が必要とする gem のリストが出力されます。

Gem のインストール

ノート: 必要であれば、gem を全て pacman のパッケージとしてインストールすることもできます。gem パッケージを検索して通常通りにインストールするだけです。Ruby gem を使うほうが gem の管理は簡単なので、以下では Ruby gem を使用しています。

Redmine は Bundler を使用して Gem の依存関係を管理するため、最初に Bundler をインストールしてください:

# gem install bundler

以下のコマンドを使うことで Redmine が必要とする Gem を全てインストールできます:

# cd /usr/share/webapps/redmine
# bundle install

ruby の developmenttest 環境を使わずにインストールする場合、代わりに以下のコマンドを使ってください:

# bundle install --without development test
ノート: You can include/exclude environments using the above syntax.

imagemagick はインストールすることが推奨されていますが、使用しない場合、以下のコマンドで rmagick gem のインストールをスキップしてください:

# bundle install --without rmagick
ノート: Only the gems that are needed by the adapters you have specified in your database configuration file are actually installed (eg. if your config/database.yml uses the mysql2 adapter, then only the mysql2 gem will be installed). Do not forget to re-run bundle install when you change or add adapters in this file.

セッションストア秘密鍵の生成

セッションデータを保存する cookie を暗号化して改竄を防止するランダムな鍵を生成する必要があります:

# bundle exec rake generate_secret_token
ノート: Redmine 2.x 以前では # bundle exec rake generate_session_store を実行することで生成できます。
警告: 新しい秘密鍵を生成すると既存のセッションは全て無効になります。

データベース構造の作成

データベースを作成して Redmine のアクセス権限を設定したら、データベース構造を作成してください。アプリケーションのルートディレクトリに以下のコマンドを実行することで作成できます:

# cd /usr/share/webapps/redmine
# RAILS_ENV=production bundle exec rake db:migrate

上記のコマンドはマイグレーションを全て実行してテーブルを作成し、パーミッションやアプリケーションの管理者アカウント (admin) を作成します。

デフォルトデータでデータベースを作成

基本的なタスクやタスクの状態、グループなど、デフォルトの設定データをデータベースに挿入するには:

# RAILS_ENV=production bundle exec rake redmine:load_default_data

Redmine はロードするデータセットの言語を聞いてきます。コマンドを実行する前に REDMINE_LANG 環境変数を定義することで自動的に値を決めさせることもできます:

# RAILS_ENV=production REDMINE_LANG=pt-BR bundle exec rake redmine:load_default_data
ノート: This step is not mandatory, but it certainly will save you a lot of work to start using Redmine. And for a first time it can be very instructive.

ファイルシステムのパーミッション

アプリケーションを実行するユーザーアカウントは以下のサブディレクトリに書き込む権限がなければなりません:

files: 添付ファイルのストレージ。
log: アプリケーションログファイル production.log。
tmptmp/pdf: PDF ドキュメントの生成などに使われます。

デフォルトの Apache ユーザーである http アカウントを使ってアプリケーションを実行する場合:

# mkdir tmp tmp/pdf public/plugin_assets
# chown -R http:http files log tmp public/plugin_assets
# chmod -R 755 files log tmp tmp/pdf public/plugin_assets

インストールのテスト

WEBrick ウェブサーバーを使って新しくインストールした環境をテストするには Redmine のフォルダで以下のコマンドを実行:

# ruby bin/rails server webrick -e production

WEBrick が起動したらブラウザで http://localhost:3000/ を開いてください。アプリケーションのウェルカムページが表示されます。デフォルトの管理者アカウントを使ってログインしてください: admin/admin。管理者メニューから設定を選択することでアプリケーションの設定が行えます。

警告: Webrick は本番環境での利用には向いていません。あくまで動作するかどうかテストするときだけ webrick を使ってください。redmine を本番環境で使用する際は Passenger (別名 mod_rails), FCGI, Rack サーバー (Unicorn, Thin, Puma, hellip) のどれかをセットアップしてください。

プロダクションサーバーの設定

Apache や Nginx の場合、Phusion Passenger を使用することが推奨されます。Passenger (別名 mod_rails) は NginxApache のモジュールとして使うことが可能です。

まず 'passenger' gem をインストール:

# gem install passenger

passenger gem のインストールディレクトリに移動してください。場所が分からない場合、以下のコマンドを実行してください:

# gem env

gem がインストールされる場所は GEM PATHS です。このページのガイドに従って RVM をインストールしている場合、使用しているパスを確認してください。

ここでは gem のパスは /usr/local/rvm/gems/ruby-2.0.0-p247@global とします。

# cd /usr/local/rvm/gems/ruby-2.0.0-p247@global/gems/passenger-4.0.23

Apache を使用する場合:

# passenger-install-apache2-module

http://example.com/yourapplication のような URI で rails アプリケーションをデプロイするときは追加の設定が必要です。modrails のドキュメント を見てください。

Nginx の場合:

# passenger-install-nginx-module

最後に、インストーラーはインストールに関する情報 (追加ライブラリのインストールなど) を提供します。passenger インストーラーの指示に従ってサーバーをセットアップしてください。

アップデート

Redmine で使用しているファイルをバックアップ:

# tar czvf ~/redmine_files.tar.gz -C /usr/share/webapps/redmine/ files

Redmine にインストールしたプラグインをバックアップ:

# tar czvf ~/redmine_plugins.tar.gz -C /usr/share/webapps/redmine/ plugins

データベースをバックアップ:

# mysqldump -u root -p <redmine_database> | gzip > ~/redmine_db.sql.gz

普通にパッケージをアップデート (AUR):

# wget https://aur.archlinux.org/packages/re/redmine/redmine.tar.gz
# tar -zxpvf redmine.tar.gz
# cd redmine

ダウンロードしたファイルを確認して (特に PKGBUILD)、ビルド:

# makepkg -s
# pacman -U redmine-2.3.0-2-any.pkg.tar.gz
ノート: AUR のインストールやアップデートは AUR ヘルパーを使うことで簡単にできますが、サポートはされていません。

gem をアップデート:

# bundle update

gem 環境をクリーンするために、全ての gem を削除してから再インストールすると良いでしょう。以下のコマンドで削除できます:

# for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done
警告: The command above will delete ALL the gems in your system or user, depending of what type of Ruby installation you did in the prerequisites step. You must take care or you can stop working another applications that rely on Ruby gems.

全ての gem を削除したら、以下のコマンドで再インストールしてください:

# gem install bundler
# bundle install --without development test
ノート: If you removed ALL the gems as above, and used a server that uses a gem, remember to reinstall the server gem: passenger (for Apache and Nginx), Mongrel or Unicorn. To do this, just follow the steps in the installation tutorial above.

保存したファイルをコピー:

# tar xzvf ~/redmine_files.tar.gz -C /usr/share/webapps/redmine/

インストールしたプラグインをコピー:

# tar xzvf ~/redmine_plugins.tar.gz -C /usr/share/webapps/redmine/

シークレットトークンを再生成:

# cd /usr/share/webapps/redmine
# bundle exec rake generate_secret_token

public/themes ディレクトリにインストールしたテーマをチェックしてください。そのままコピーすることもできますが最新のバージョンがないか確認したほうが良いでしょう。

警告: config/settings.yml を古いファイルで上書きしてはいけません。

データベースをアップデートしてください。データベースの中身が変わる可能性があります。新しい redmine ディレクトリからデータベースを以降してください:

# RAILS_ENV=production REDMINE_LANG=pt-BR bundle exec rake db:migrate

プラグインをインストールしている場合、プラグインのデータベースも移行する必要があります:

# RAILS_ENV=production REDMINE_LANG=pt-BR bundle exec rake redmine:plugins:migrate

キャッシュと既存のセッションを消去してください:

# RAILS_ENV=production bundle exec rake tmp:cache:clear tmp:sessions:clear

アプリケーションサーバー (例: puma, thin, passenger) を再起動してください。最後に "Admin -> Roles & permissions" から新しい機能があればパーミッションを確認・設定してください。

トラブルシューティング

RMagick の gem が ImageMagick のハイダイナミックレンジ合成をサポートしていない

ImageMagick 6.8.6.8-1 現在、HDRI (High Dynamic Range Image) のサポートが有効になっていますが、FS#36518 にあるように RMagick の gem が破壊されてしまいます。

github の rmagick には既にパッチがあたっていますが、rubygem にはまだパッチが適用されていません。

パッチが適用されたバージョンをインストールするには git リポジトリからダウンロードしてください:

# git clone https://github.com/rmagick/rmagick.git

そして、gem をビルドする必要があります:

# cd rmagick
# gem build rmagick.gemspec

ビルドできたらインストールしてください:

# gem install rmagick-2.13.2.gem
ノート: unable to convert "\xE0" from ASCII-8BIT to UTF-8 for ext/RMagick/RMagick2.so, skipping などとエラーが出ることがありますが、無視して問題ありません。

RMagick が古いバージョンで設定されているというエラーが発生する

ImageMagick をアップグレードしたときに This installation of RMagick was configured with ImageMagick 6.8.7 but ImageMagick 6.8.8-1 is in use. というエラーが発生する場合、再インストールが必要です (もしくは上記のように再ビルドしてください)。

ノート: RMagick の gem をインストールしたときにネイティブ拡張がコンパイルされますが、ImageMagick をアップグレードすると再ビルドが必要になるため再インストールが必要になります。

OpenSSL の "SSLv3_client" エラー

最新リリースの OpenSSL (バージョン 1.0.2.g-3) では ruby は動作せず複数の ruby バージョンをビルドできません。以下の方法で解決します:

1. ruby-head (RVM を使用する場合) あるいは 2.3.0 以上 (Arch のパッケージを使用する場合) を使用する。

2. Issue 3529Issue 3548 に書かているパッチを使用する:

# curl https://github.com/ruby/ruby/commit/801e1fe46d83c856844ba18ae4751478c59af0d1.diff > openssl.patch
# rvm install --patch ./openssl.patch 2.0.0 /*or another ruby version*/

gem のインストール時にエラー: Cannot load such file -- mysql2/mysql2

cannot load such file -- mysql2/mysql2 というエラーが表示される場合、データベース gem のインストールに問題が起こっています。おそらくデータベースのアクセス設定で行った設定が誤っています。database.yml ファイルを確認してください。

以下のコマンドを使って手動でデータベース gem をインストールすることもできます:

# gem install mysql2

Bobdog によって提案されているように、データベースの gem の行をコメントアウトして以下のように新しい行を追加することができます:

<path-to-mysql2-gem-directory>/lib/mysql2/mysql2.rb
# require 'mysql2/mysql2'
require '<path-to-mysql2-gem-directory>/lib/mysql2/mysql2.so'

Apache 2.4 のアップデート

Apache 2.4 に更新する際に gem を全て削除してからインストールする必要があります。新しい Apache サーバーに対してネイティブ拡張を再ビルドするためです。

gem 環境をクリーンにするために、全ての gem を削除:

# for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done

gem を再インストールするには:

# cd /usr/share/webapps/redmine
# gem install bundler
# bundle install --without development test

#RMagick の gem が ImageMagick のハイダイナミックレンジ合成をサポートしていないに書かれているように RMagick の gem を再インストールしてください。

Passenger を使って Apache でアプリを提供する場合、#プロダクションサーバーの設定に書かれているように再インストールが必要です。

SVN ソースのチェックアウト

Redmine のソースを取得します (ダウンロード手順)。以下は subversion から /srv/http/redmine/ に直接 Redmine をインストールする方法です:

# useradd -d /srv/http/redmine -s /bin/false redmine
# mkdir -p /srv/http/redmine
# svn checkout http://svn.redmine.org/redmine/branches/2.1-stable /srv/http/redmine
# chown -R redmine: /srv/http/redmine

アップデートの自動化

after-update スクリプトの例:

#!/usr/bin/bash
export RAILS_ENV=production
grep -E "^gem 'thin'" Gemfile || echo "gem 'thin'" >> Gemfile
bundle update && bundle exec rake generate_secret_token db:migrate redmine:plugins:migrate tmp:cache:clear tmp:sessions:clear
ノート: 上記のスクリプトはアプリケーションサーバーとして Thin を使います。必要に応じて変更してください。

Systemd ユニットの作成

システムが起動したときに自動的にアプリケーションサーバーを立ち上げたい場合、systemd のユニットファイルを作成してください。

ノート: apachenginx と Passenger gem を使用する場合は不要です。サーバーのユニットファイルを有効化するだけで使うことができます。
/etc/systemd/system/redmine.service
[Unit]
Description=Redmine server
After=syslog.target
After=network.target

[Service]
Type=simple
User=redmine2
Group=redmine2
Environment=GEM_HOME=/home/redmine2/.gem/
ExecStart=/usr/bin/ruby /usr/share/webapps/redmine/script/rails server webrick -e production

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

[Install]
WantedBy=multi-user.target

psych に関するエラー

以下のようなエラーが表示される場合:

/usr/lib/ruby/2.1.0/psych/parser.rb:33:in `<class:Parser>': superclass mismatch for class Mark (TypeError)
from /usr/lib/ruby/2.1.0/psych/parser.rb:32:in `<module:Psych>'
from /usr/lib/ruby/2.1.0/psych/parser.rb:1:in `<top (required)>'
from /usr/lib/ruby/2.1.0/psych.rb:7:in `require'

bundler が原因です。Gemfile.local に以下を追加してください [1]:

gem 'psych'

参照