Ubuntu 18.04 に Redmine を Apache + MariaDB でインストールする

重要: この手順は Ubuntu 18.04 向けです。別バージョン(20.04/22.04)やコンテナ環境では差異があります。バックアップを必ず取得してから操作してください。
概要
Redmine はオープンソースの Web ベースプロジェクト管理アプリケーションです。複数プロジェクト、ロールベースのアクセス制御、Git/SVN/CVS 等のバージョン管理統合、Wiki、ドキュメント管理、タイムトラッキングなど豊富な機能を備えます。ここでは Apache(mod_passenger)と MariaDB を用いた標準的なパッケージインストール手順を扱います。
用語定義: Redmine — プロジェクト管理アプリケーション。Passenger — Ruby アプリを Apache 上で動かすモジュール。
目次
- 要件
- Apache と MariaDB のインストール
- MariaDB の初期設定(セキュア化)
- Redmine のインストール(パッケージ)
- Apache の設定と仮想ホスト
- Redmine への初回アクセスと管理者パスワード変更
- セキュリティとハードニング
- トラブルシューティング(よくある問題と対処)
- ロール別チェックリスト
- バックアップとリストアの基本
- 受け入れ基準
- 代替アプローチと移行メモ
- 要約
要件
- Ubuntu 18.04 がインストールされたサーバー
- sudo 権限を持つ非 root ユーザー
- 外部ネットワーク(パッケージ取得用)
- ドメイン名(任意だが推奨)
重要: 本手順は root での実行を前提しませんが、sudo を利用します。
Apache と MariaDB をインストールする
Redmine は Web サーバー上で動作し、データを MariaDB に保存します。以下のコマンドで Apache、MariaDB、Passenger を導入します。
sudo apt-get install apache2 mariadb-server libapache2-mod-passenger -y
インストール後、Apache と MariaDB を起動してブート時自動起動を有効化します。
sudo systemctl start apache2
sudo systemctl start mariadb
sudo systemctl enable apache2
sudo systemctl enable mariadb
サービスの状態確認:
sudo systemctl status apache2
sudo systemctl status mariadb
MariaDB の初期セキュア化
MariaDB のデフォルトはセキュア化されていません。以下のスクリプトを実行して基本設定を行います。
sudo mysql_secure_installation
対話例(推奨回答を示します):
Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
注意: “Set root password?” を N にしているのは Ubuntu の auth_socket プラグインで管理されている場合の例です。環境に応じて root パスワードを設定してください。
Redmine のインストール(パッケージ)
Ubuntu 18.04 の標準リポジトリに redmine パッケージが含まれているため、簡単にインストールできます。
sudo apt-get install redmine redmine-mysql -y
インストール中に設定ウィザードが表示されます。以下の画像は設定画面の例です。
プロンプトで “Yes” を選択し、データベースに “mysql” を選択して、Redmine 用のデータベースパスワードを入力します。
次に bundler をインストールします。
sudo gem install bundler
Redmine を Apache の公開ディレクトリにシンボリックリンクします。
sudo ln -s /usr/share/redmine/public /var/www/html/redmine
Gemfile.lock を作成し、パーミッションを調整します。
sudo touch /usr/share/redmine/Gemfile.lock
sudo chown www-data:www-data /usr/share/redmine/Gemfile.lock
sudo chown -R www-data:www-data /var/www/html/redmine
Apache を Redmine 用に設定する
Passenger の設定ファイルを編集します。
sudo nano /etc/apache2/mods-available/passenger.conf
以下のように設定されていることを確認または変更します。
PassengerDefaultUser www-data
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/ruby
次に Redmine 用の仮想ホストファイルを作成します。
sudo nano /etc/apache2/sites-available/redmine.conf
ファイル内容例:
ServerAdmin [email protected]
DocumentRoot /var/www/html/redmine
ServerName example.com
ServerAlias www.example.com
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName と ServerAlias を環境のドメイン名に置き換えて保存します。
仮想ホストを有効化し、rewrite モジュールを有効にします。
sudo a2ensite redmine
sudo a2enmod rewrite
最後に Apache を再起動して設定を反映します。
sudo systemctl restart apache2
サービスのステータス確認出力例:
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-01-16 17:43:29 CET; 8s ago
...
Jan 16 17:43:29 server1 systemd[1]: Started The Apache HTTP Server.
Redmine の Web インターフェースにアクセスする
ブラウザで http://example.com にアクセス(ServerName を置き換え)すると Redmine の初期画面が表示されます。
右上の “Sign In” をクリックしてログイン画面へ進みます。
初期管理者アカウントは次のとおりです:
- ユーザー名: admin
- パスワード: admin
ログイン後、管理者パスワードを変更してください。
パスワード変更後、ダッシュボードが表示されます。
おめでとうございます。これで Redmine の基本インストールと初期設定は完了です。
セキュリティとハードニング
- TLS/HTTPS を導入する: Let’s Encrypt 等で証明書を取得し、Apache の VirtualHost を 443 で設定してください。
- ファイアウォール: UFW を利用して 80/443 のみ開放、不要ポートを閉じる。
- 例: sudo ufw allow ‘Apache Full’
- MariaDB の root アクセス制限とアカウント管理: 必要最低限の権限原則を適用する。
- Redmine のメール送信設定: SMTP を使う場合は credentials を暗号化して設定する。
- 定期的な gem / OS のアップデート: セキュリティ修正を適用。
トラブルシューティング(よくある問題と対処)
- Apache が起動しない
- 設定ファイルの syntax をチェック: sudo apachectl configtest
- エラーログを確認: /var/log/apache2/error.log
- Passenger 関連のエラー
- PassengerRoot と PassengerDefaultRuby のパスが正しいか確認
- Ruby のバージョンと互換性をチェック
- データベース接続エラー
- /etc/redmine/database.yml(パッケージによって配置場所が異なる)を確認
- MariaDB 上に適切なユーザーとデータベースが存在するか確認
- 静的ファイルが読み込めない
- /var/www/html/redmine/public のパーミッションを確認
ロール別チェックリスト
- システム管理者
- Apache と MariaDB をインストール、サービスを自動起動に設定
- TLS を導入し、ファイアウォールを設定
- 定期バックアップのスケジューリング
- アプリケーション管理者
- Redmine の初期設定(メール、トラッカー、ロール)
- プラグインの導入とテスト
- ユーザー & グループ管理
- 開発者
- バージョン管理連携 (Git/SVN) の設定
- カスタムプラグインの運用と依存関係管理
バックアップとリストアの基本(ミニ手順)
- データベースのバックアップ例(mysqldump):
sudo mysqldump -u root -p redmine > /var/backups/redmine-db-$(date +%F).sql
- 添付ファイルと設定のバックアップ:
sudo tar czf /var/backups/redmine-files-$(date +%F).tar.gz /var/www/html/redmine/files /usr/share/redmine/config
- リストアの基本: データベースを復元し、ファイルを元の場所に展開、パーミッションを修正して Apache を再起動。
受け入れ基準
- Apache が稼働しており、http://
で Redmine のトップページが表示される。 - 管理者アカウントでログインでき、パスワードを変更済みである。
- MariaDB に redmine 用データベースが作成され、接続確認できる。
- TLS が導入されている(本番の場合は必須)。
代替アプローチと移行メモ
- コンテナ化(Docker): Docker イメージを使えば OS 固有の差異を減らせます。大規模運用では Docker + orchestration(Kubernetes 等)を検討。
- Web サーバー: Passenger 経由の Apache 以外に、Puma + Nginx の構成も一般的です。性能・スケーラビリティ要件により選定。
- データベース: MySQL/MariaDB 以外に PostgreSQL も Redmine でサポートされています。
テストケース / 受け入れテスト例
- 初期ログイン: admin/admin でログイン可能か
- 新規プロジェクト作成: プロジェクトを作成し、チケットを登録できるか
- 添付ファイルアップロード: 添付が保存され、ダウンロードできるか
- メール通知: SMTP 設定でチケット作成通知が送信されるか
よくある失敗例(いつうまくいかないか)
- パッケージ版の gem 依存とカスタムプラグインが競合する場合
- OS の Ruby バージョンが古く、最新プラグインが動作しない場合
- データベースの認証方式(auth_socket 等)により接続が拒否される場合
要約
- Ubuntu 18.04 に Redmine をインストールするには、Apache と MariaDB、Passenger を導入し、redmine パッケージをインストールして Apache の仮想ホストを設定します。インストール後は管理者パスワードを変更し、TLS・バックアップ・アクセス制御を整備してください。
要点: 初期セットアップは比較的簡単ですが、本番運用では TLS、定期バックアップ、ユーザー権限管理、ログ監視を必須としてください。
まとめ(短い告知文): このガイドは Ubuntu 18.04 環境で Apache + MariaDB を使って Redmine を迅速に導入するための手順と、運用に必要なセキュリティ、バックアップ、トラブルシューティングのチェックリストを提供します。