プロジェクト管理ソフトウェア Redmine 4.0 のインストールと設定(Ubuntu 20.04 上)
主な機能は次の通り。
- チケット(issue)による課題・作業の登録,担当者の割り当て,進捗の管理
- Wiki,フォーラム,文書,ファイルの各機能(仕様書,議事録などの管理に使用できる)
- バージョン管理システム(Subversion, Git, Mercurial など)のリポジトリの参照
- チケットの更新等のメール通知,および受信メールからのチケット登録
このページで説明するインストールの構成は次の通りである。
- Redmine は PostgreSQL と Apache の上で運用する。
- PostgreSQL, Redmine, Apache は,セキュリティ更新の適用を容易にするため,Ubuntu のパッケージを使用する。データベースの作成や接続設定は,Ubuntu パッケージのインストール時に自動で行われる。
- PostgreSQL は,/etc/postgresql/12/main/pg_hba.conf の local 接続の設定を次のように変更し,パスワード(md5)認証を有効にする。
local all all md5 - Passenger と Apache 用 Passenger モジュールは,Ubuntu パッケージではなく gem 版を使用し,公式の手順(passenger-install-apache2-module)でインストールする。Ubuntu パッケージの Passenger は更新が遅れることがあり,gem 版では Apache の apxs(apache2-dev)を用いてモジュールが構築されるため,導入済みの Apache と組み合わせやすい。
- Apache は,Redmine 以外の Web コンテンツも扱う設定にする。
http://<サイト名>/redmine は Redmine へのアクセス。
http://<サイト名>/<redmine 以外> は Web コンテンツへのアクセス。
【関連する外部ページ】 https://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_Ubuntu_step_by_step
このページは,Ubuntu 20.04 の redmine パッケージ(バージョン 4.0.6)を対象とする。次の点を確認した上で使用する。
- Ubuntu 20.04 の標準サポートは 2025 年 5 月 31 日に終了している。Ubuntu Pro(ESM)を利用する場合は 2030 年 4 月までセキュリティ更新を受け取れる。
- Redmine 4.0 系は上流でのサポートが終了している。2026 年 6 月時点の Redmine の公開版は 5.1.13, 6.0.10, 6.1.3, 7.0.0 である。最新の情報は https://www.redmine.org/projects/redmine/wiki/download で確認できる。
- redmine パッケージは Ubuntu 22.04 以降には収録されていない。新しい Ubuntu で新規に構築する場合は,Redmine 公式の手順(https://www.redmine.org/projects/redmine/wiki/redmineinstall)に従い,配布アーカイブからインストールする。
1. 前準備
Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは,パッケージ情報を最新の状態に保ち,インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now
Apache, PostgreSQL, Redmine 関係パッケージのアンインストール,関連ファイルの削除
旧バージョンや中途半端な状態の設定ファイルが残っていると,インストールが失敗する場合がある。そのため,インストールの前にアンインストールを行う。
sudo apt -y --purge remove postgresql-12 postgresql-client-12 postgresql-client-common postgresql-common postgresql-contrib libpq-dev
sudo rm -rf /etc/postgresql
sudo rm -rf /var/lib/postgresql/12
sudo apt -y --purge remove apache2 apache2-dev libapache2-mod-passenger redmine redmine-pgsql puma passenger passenger-doc ruby-passenger
sudo rm -rf /etc/apache2
sudo rm -rf /usr/share/redmine
sudo rm -rf /var/www/html/redmine
sudo rm -rf /etc/dbconfig-common/redmine
sudo apt -y autoremove
sudo apt autoclean
2. Redmine のインストール,基本設定
PostgreSQL のインストール,データベースファイルの作成(Ubuntu 上)
- PostgreSQL のインストール
Redmine の運用に必要なパッケージをインストールする。 インストールするには, 次のコマンドを実行する。
# パッケージリストの情報を更新 sudo apt update sudo apt -y install postgresql-12 postgresql-client-12 postgresql-client-common postgresql-common postgresql-contrib libpq-dev - PostgreSQL サーバを起動開始
エラーメッセージが出ていなければよい。
sudo pg_ctlcluster 12 main start sudo pg_ctlcluster 12 main status
- PostgreSQL の認証方式の確認
インストール直後は,local 接続に peer 認証が設定されている。次のコマンドで確認する。
sudo cat /etc/postgresql/12/main/pg_hba.conf
- PostgreSQL の動作確認
Ubuntu のユーザ postgres と peer 認証により,PostgreSQL の psql を使ってみる。
「\c」により,使用されている PostgreSQL のロール名と,オープンされているデータベース名を確認する。
確認したら,「\q」により終了する。
sudo -u postgres psql \c \q
- データベースの確認
postgres, template0, template1 の 3 つのデータベースが表示されることを確認する。
sudo -u postgres psql \l \q
- psql のバージョン確認
psql --version
PostgreSQL の認証設定
- PostgreSQL の認証方式の確認
local 接続に peer 認証が設定されていることを,次のコマンドで確認する。
sudo cat /etc/postgresql/12/main/pg_hba.conf
PostgreSQL での新しいロールの追加と md5 認証の設定ここは「Redmine のインストール」に必要な設定ではない。 PostgreSQL でのロールの追加とパスワード認証の動作を確認したいときに行う。
次の手順で,PostgreSQL に新しいロール testuser を作成し,md5 認証で接続できるように設定する。
- PostgreSQL で,新しいロール testuser を作成
パスワードは,下のものをそのまま使うのでなく,必ず独自に設定すること。
sudo -u postgres psql create role "testuser" with login encrypted password 'hoge7618mhty'; \du \q
- /etc/postgresql/12/main/pg_hba.conf を書き換えて,testuser の md5 認証を有効にする。
そのために,次の1行を追加する。追加する位置は,「local all all」の行よりも前である。pg_hba.conf の各行は,記述された順に照合され,最初に一致した行が使われる。
local all testuser md5
- PostgreSQL サーバの再起動
エラーメッセージが出ていなければよい。
sudo pg_ctlcluster 12 main restart sudo pg_ctlcluster 12 main status
- 新しいロール testuser で,md5 認証により psql を使用できるか確認する。
md5 認証のときは psql -U <ロール名> -d <データベース名>
psql -U testuser -d postgres \c \q
- PostgreSQL で,新しいロール testuser を作成
- /etc/postgresql/12/main/pg_hba.conf を書き換えて,local 接続の md5 認証を有効にする。
そのために,「local all all」の行を次のように設定する。ファイルの先頭付近にある「local all postgres peer」の行は,そのまま残す。この行を残すことで,OS のユーザ postgres からの peer 認証による接続は,引き続き使用できる。
local all all md5
この設定を行わずに psql -U <ロール名> で接続すると,「Peer authentication failed ...」というメッセージが表示される。これは,peer 認証が使われ,OS のユーザ名とロール名が一致しないために接続が拒否されたことを示す。PostgreSQL 12 の password_encryption の既定値は md5 である。PostgreSQL 10 以降では,より安全な scram-sha-256 が利用できる。scram-sha-256 を使用する場合は,postgresql.conf で password_encryption = scram-sha-256 を設定した上でロールのパスワードを設定し直し,pg_hba.conf の認証方式も scram-sha-256 に変更する。
- PostgreSQL サーバの再起動
エラーメッセージが出ていなければよい。
sudo pg_ctlcluster 12 main restart sudo pg_ctlcluster 12 main status
- 認証に関する動作確認
pg_hba.conf を書き換えたあとも,OS のユーザ postgres が peer 認証で接続できることを確認する。
sudo -u postgres psql \q
postgresql.conf の設定例
メモリ関係のパラメータは,搭載している物理メモリの量に応じて設定する。設定ファイルは /etc/postgresql/12/main/postgresql.conf である。目安は次の通りである。
- shared_buffers: PostgreSQL が確保する共有バッファ。物理メモリの 25% 程度が目安。
- work_mem: 1 回のソートやハッシュ処理ごとに確保される作業メモリ。1 つの問い合わせが複数回確保することがあり,同時接続数の分だけ多重に消費される。数 MB から数十 MB 程度で設定する。
- effective_cache_size: OS のページキャッシュを含めた,利用可能なキャッシュ量の見積もり値。実際にメモリを確保するのではなく,実行計画の選択に使われる。物理メモリの 50〜75% 程度。
物理メモリ 32GB の場合の設定例。
shared_buffers = 8GB
work_mem = 16MB
effective_cache_size = 24GB
ImageMagick のインストール(Ubuntu 上)
Redmine は,添付画像のサムネイル生成に ImageMagick を使用する。
- ImageMagick のインストール
# パッケージリストの情報を更新 sudo apt update sudo apt -y install imagemagick
Redmine, puma のインストールと Redmine の基本設定
- データベースアダプタ: pgsql
- データベースシステムのサイト: localhost
- Redmine, puma のアンインストール
旧バージョンが残っている可能性があるため,アンインストールの操作を行う。
sudo apt --purge remove redmine redmine-pgsql puma sudo rm -rf /usr/share/redmine sudo rm -rf /var/www/html/redmine sudo rm -rf /etc/dbconfig-common/redmine
- PostgreSQL のデータベース redmine_default の削除
データベース redmine_default が残っていると,インストール時のデータベース作成に失敗する。 Redmine のインストールの前に,削除の操作を行う。
sudo -u postgres psql drop database redmine_default; \q
- Redmine, puma のインストール
# パッケージリストの情報を更新 sudo apt update sudo apt -y install redmine redmine-pgsql puma
- このとき,redmine/instances/default 用のデータベースを生成する
- データベースアダプタとして pgsql を選ぶ
- データベースシステムのサイトとして localhost を選ぶ
- redmine/instances/default 用の PostgreSQL アプリケーションパスワードを設定
パスワードは, 「ahsd1677ggha」のように,英字と数字を混ぜ,長いものがよい。 必ず独自に設定すること。
同じものを2回入れる。
- Redmine, puma のインストール終了の確認
エラーメッセージが出ていないことを確認する。 PostgreSQL の設定などが原因でエラーメッセージが出る場合がある。 エラーメッセージが出ている場合は,続行せずに,PostgreSQL の設定を確認した上でやり直す。
- Redmine のバージョン確認
more /usr/share/redmine/lib/redmine/version.rb
- PostgreSQL で,新しく作成されたロール名,データベース名を確認する。
- 新しく作成されたデータベース名: redmine_default
- 新しく作成されたロール名: redmine/instances/default
sudo -u postgres psql \l \du \q
3. Redmine の設定確認,動作確認
Redmine の設定確認
データベースアダプタ,使用するデータベース名,使用するロール名 は,パッケージのインストール時に自動設定されている。
設定内容を確認するには,次のコマンドを実行する。
sudo cat /etc/redmine/default/database.yml
上の実行結果では,次のことが確認できる。
- データベースアダプタ: postgresql
- 使用するデータベース名: redmine_default
- 使用するロール名: redmine/instances/default
Webrick を用いた動作確認
https://www.redmine.org/projects/redmine/wiki/redmineinstall
- Redmine のための Webrick サーバのテスト実行(Webrick サーバが起動する)
サーバの起動メッセージを確認する。
cd /usr/share/redmine sudo bundle exec rails server webrick -e production
- 別の端末を開き,Web ブラウザで次の URL を開く
Web ブラウザに Redmine の画面が表示されることを確認する。
http://localhost:3000/
- ID: 「admin」,password: 「admin」でログイン
- 初回ログイン時に,管理者のパスワードの変更を行う
admin/admin は Redmine の初期パスワードであり,公開する前に必ず変更する。
- 各種の設定
設定を行うときは,「個人設定(My account)」をクリックする。
次のような設定画面が開く。
- CTRL + c キー(同時押し)で,Webrick サーバを停止
4. Apache2 サーバによる運用の設定
Apache2 のインストール(Ubuntu 上)
- apache2 のインストール
apache2-dev は,Apache 用 Passenger モジュールを構築するときに必要になる。
# パッケージリストの情報を更新 sudo apt update sudo apt -y install apache2 apache2-dev
- Web ブラウザで http://127.0.0.1/index.html を開き apache の動作確認
firefox http://127.0.0.1/index.html
Passenger のインストール
- Passenger のインストール,Apache 用 Passenger モジュールのインストール
gem コマンドは ruby パッケージに同梱される。
# パッケージリストの情報を更新 sudo apt update sudo apt -y install build-essential gcc g++ make libtool texinfo dpkg-dev pkg-config sudo apt -y install libcurl4 libcurl4-openssl-dev zlib1g-dev apache2-ssl-dev sudo apt -y install ruby ruby-dev rake sudo gem install passenger sudo passenger-install-apache2-module --auto --languages ruby - Apache 用 Passenger モジュールのインストールの結果の確認
エラーメッセージが出ていないことを確認する。
そして,画面に,次のように,Apache の設定ファイルに追加すべき内容が表示されるので確認する。パス中のバージョン番号は,インストールした Ruby と Passenger のバージョンにより異なる。
LoadModule passenger_module /var/lib/gems/2.7.0/gems/passenger-6.0.8/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /var/lib/gems/2.7.0/gems/passenger-6.0.8 PassengerDefaultRuby /usr/bin/ruby2.7 </IfModule>
- いま表示された設定内容は,次のコマンドの実行により,いつでも確認できる。
passenger-install-apache2-module --snippet
Redmine を Apache で運用するための設定と動作確認
- passenger のログファイルの場所の確認
次のコマンドを実行する。「Error log file」の表示により確認できる。 passenger が動作しないときは,このログファイルを確認する。
このコマンドは,passenger のインストールができたかの確認にもなる。
passenger-config --detect-apache2
- Redmine の公開ファイルの確認
ls -al /usr/share/redmine/public
- /etc/apache2/sites-available/000-default.conf の設定
次のように設定する。
- Redmine の プログラムの場所: /usr/share/redmine
- Redmine の プログラムのうち公開するもの: /usr/share/redmine/public
- Web アクセスするときの URL: /redmine
- Apache 用 Passenger モジュールのインストールのときに表示された内容を,そのとおりに設定する。
- Passenger の設定として,PassengerDefaultRuby,PassengerDefaultUser を設定する。
【関連する外部ページ】 https://redmine.jp/tech_note/passenger-options/
Alias により URL の /redmine を /usr/share/redmine/public に対応付け,PassengerBaseURI と PassengerAppRoot により,サブディレクトリ /redmine で Rails アプリケーションを動作させる。Apache 2.4 では,アクセス制御に Require ディレクティブを使用する。
- まず,次のように設定する。
<Directory "/usr/share/redmine/public"> Require all granted </Directory> Alias /redmine /usr/share/redmine/public <Location /redmine> PassengerBaseURI /redmine PassengerAppRoot /usr/share/redmine </Location>
- 次のコマンドを実行する。
passenger-install-apache2-module --snippet
表示された内容を, /etc/apache2/sites-available/000-default.conf の末尾に追加する。
LoadModule は,VirtualHost ブロックの外側(ファイルの末尾)に記述する。
そして,<IfModule mod_passenger.c> ブロックの中に,次の1行を書き加える。これは,Redmine のファイルの所有者である www-data の権限でアプリケーションを実行させるための設定である。
PassengerDefaultUser www-data
- Apache の設定ファイルを書き換えたので,設定内容を検査し,Apache を再起動する
/usr/sbin/apachectl configtest sudo service apache2 restart
- Web ブラウザで http://127.0.0.1/redmine を開き apache の動作確認
firefox http://127.0.0.1/redmine