インストール - Redmine
概要
Rubyのインストール
Rubyのビルドに必要なライブラリをインストールする。
sudo zypper install gcc gcc-c++ autoconf bison gperf libopenssl-devel libopenssl-1_1-devel libyaml-devel zlib-devel \ readline-devel libedit-devel gmp-devel libffi-devel rust cargo ruby2.5-devel
RubyのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf ruby-<バージョン>.tar.gz cd ruby-<バージョン>
Rubyをビルドおよびインストールする。
./autogen.sh mkdir build && cd build ../configure --prefix=<Rubyのインストールディレクトリ> --program-suffix=<サフィックス> --disable-install-doc make -j $(nproc) make install
Redmineのインストール
一般的に、最新のRedmineをインストールする。
Redmineは、6ヶ月ごとに新しいバージョンがリリースされており、実用的でかつ安定している。
リポジトリのtrunkからチェックアウトした開発版は、Ruby on Railsに精通し、かつ最新の開発に追従する必要がない限りは非推奨である。
また、trunkは正常に動作しないこともあるため、注意が必要である。
Redmineのインストール
Redmineの公式Webサイトにアクセスして、Redmineをダウンロードする。
ダウンロードしたファイルを展開して、任意のディレクトリに配置する。
空のデータベースとユーザの作成
- MySQLの場合
CREATE DATABASE redmine CHARACTER SET utf8mb4; CREATE USER 'redmine'@'localhost' IDENTIFIED BY '<パスワード>'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; ※ MySQL 5.5.2以前の場合、utf8mb4ではなくutf8を指定すること。
- PostgreSQLの場合
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD '<パスワード>' NOINHERIT VALID UNTIL 'infinity'; CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
データベースの接続の設定
Redmineのインストールディレクトリにあるconfig/database.example.ymlファイルをコピーして、config/database.ymlファイルを作成する。
次に、config/database.ymlファイルを編集して、"production"環境用のデータベースの設定を行う。
- MySQLの場合
production: adapter: mysql2 database: <上記で作成したデータベース名 例. redmine> host: <上記で指定したホスト名 例. localhost> port: <ポート番号 例. 3306> username: <上記で作成したユーザ名 例. redmine> password: "<MySQLにおけるredmineユーザのパスワード>" encoding: utf8mb4 pool: 5 schema_search_path: public socket: <MySQLのソケットファイルのフルパス>
- PostgreSQLの場合
production: adapter: postgresql database: <上記で作成したデータベース名 例. redmine> host: <上記で指定したホスト名 例. localhost> username: <上記で作成したユーザ名 例. redmine> password: "<PostgreSQLにおけるredmineユーザのパスワード>" encoding: utf8 schema_search_path: <データベーススキーマ (デフォルト: public)> socket: <PostgreSQLのソケットファイルのフルパス>
Redmineに依存するソフトウェアのインストール
Redmineは、RubyGemの依存関係を管理するために、Bundlerを使用している。
そのため、まず、Bundlerをインストールする。
gem install bundler または sudo gem install bundler
Redmineのインストールディレクトリに移動して、Redmineの実行に必要な全てのgemをインストールする。
bundle install --without development test または sudo bundle install --without development test
データベースアダプタ
Redmineは、データベースの設定ファイルであるconfig/database.ymlファイルを読み取り、必要なデータベースアダプタを自動的にインストールする。
(例. mysql2のみを使用するように設定した場合は、mysql2 gemのみがインストールされる)
もし、config/database.ymlファイルを編集してデータベースアダプタの追加や削除を行った後は、必ず、bundle install --without development test ...略
を実行する。
独自の依存関係の設定 (Gemfile.local)
もし、Redmine本体が使用しないgem(例. puma、fcgi)もロードする場合は、Gemfile.localファイルをRedmineのインストールディレクトリに作成する。
これは、bundle install
コマンド実行時にインストールされる。
# Gemfile.localファイル gem 'puma'
セッションストア秘密鍵の生成
Railsはセッションハイジャックを防ぐため、セッション情報を格納するcookieをエンコードしている。
この処理で使用されるランダムなキーを生成する。
bundle exec rake generate_secret_token
また、秘密鍵は、config/secrets.ymlファイルに格納することもできる。
データベースのテーブル等の作成
データベースに、Redmineに必要なテーブルを作成する。
Redmineのインストールディレクトリに移動して、以下に示すコマンドを実行する。
これにより、マイグレーションが1つずつ実行およびテーブルが作成されて、更に権限のデータ一式と管理者アカウント(admin)が作成される。
RAILS_ENV=production bundle exec rake db:migrate
デフォルトデータ
デフォルトデータをデータベースに追加する。
RAILS_ENV=production bundle exec rake redmine:load_default_data
各言語のデフォルトデータにおいて、言語の選択が求められる。
なお、上記のコマンドにおいて、REDMINE_LANG
オプションを指定する場合、言語の選択を求められることなく自動的に処理が進められる。
RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
ディレクトリおよびファイルのパーミッション
Redmineを実行するOSのユーザーは、以下に示すディレクトリの書き込み権限が必要である。
- files (添付ファイルの保存ディレクトリ)
- log (Redmineのログファイル @production.log@)
- tmp (これらのディレクトリが無ければ作成すること)
- tmp/pdf (これらのディレクトリが無ければ作成すること)
- public/plugin_assets (プラグインが使用する画像やCSS)
例. redmineユーザとしてソフトウェアを実行する場合 mkdir -p tmp tmp/pdf public/plugin_assets chown -R redmine:redmine files log tmp public/plugin_assets chmod -R 755 files log tmp public/plugin_assets ※注意 これらのディレクトリが既に存在する場合(バックアップからリストアした場合等)、ファイルに実行権限が不可されていないことを確認する。 find files log tmp public/plugin_assets -type f -exec chmod -x {} +
Redmineの起動
WEBrickを使用してRedmineを起動する。
bundle exec rails server webrick -e production
WEBrickが正常に起動した後、Webブラウザから http://localhost:3000/ にアクセスする。
デフォルトのシステム管理者アカウントは、以下の通りである。
- ログインID
- admin
- パスワード
- admin
※注意
WEBrickは開発時に使用すものであり、通常の運用には適していないため、動作確認以外には使用しないこと。
本番運用においては、Passenger(mod_rails)、FCGI、Rackサーバ(Unicorn, Thin, Puma,hellip等)の使用を推奨する。