Ubuntu 18.04 で運用しているサーバーに、プロジェクト管理ツール、Redmine をインストールしたのでその覚書です。

RubyとRuby on RailsをRbenvでインストール(システムワイド編) 」の続きになります。

この記事を書いてずいぶん寝かしてしまっていたので、以下の記述は Redmine 4.0.1 に関するインストールになります1

なお、いつものことですが、この記事はあくまでも個人の備忘録ですので、参考にされる場合は自己責任でお願いします。

これまで、Redmine 3.2 を利用していたのですが、サーバー移行するのでバージョンアップしてみました。

記事は、原則として新規にインストールすることを前提として書いていますが、後半に移行時のヒントを書いています。

前提

公式のインストールガイド

データベースの作成

MariaDB でデータベースを作成します。

次のSQLを実行します。ここでは仮に以下のように想定して設定します2

  • データベース名: redmine
  • ユーザー名: redmine
  • パスワード: my_password

Redmineの取得

Redmine をダウンロードします。

データベース接続設定

Redmine のアーカイブを解凍して、データベースの設定ファイルconfig/database.ymlを編集します。

config/database.ymlに接続設定を記述します。。

追加Gemのインストール

実行に必要な Gem をインストールするのに必要なパッケージをインストールします。

bundle install を実行して、必要なGemをインストールします。

rmagickが不要の場合は、単純に以下のコマンドでOK

セッショントークンの作成

データベーススキーマオブジェクトの生成

データベースデフォルトデータセットの挿入

Select language: で言語を設定します。ja に設定します。

必要なディレクトリを作成

必要なディレクトリを作成します。

もし、環境移行等で、バックアップファイルから復元する場合は、logtmppublic/plugin_assetsのディレクトリにあるファイルの実行権限を無効にします。

インストールをテスト

WEBRic3 を利用して、試験的にインストールをテストしてみます。

http://your-ip-address:3000/ にアクセスして Welcome ページが表示されるか確認。

確認が取れたら、CTRL+C で停止させます。

passenger インストール

Apache2 上で Ruby の Webアプリケーションを実行させるために、Passenger をインストールします。

Passenger のビルドに必要なパッケージを導入します。

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

実行すると、何点か質疑があるのでそれに答えます。

最初の問には、1. The Apache2 module will be installed for you. を選択します。

言語は、Ruby を選択します。

その後、ビルドが始まるのでしばらく待ってください。

ビルドが終了すると、Apache2 向けの設定、LoadModule ~ </IfModule>が表示されるので、コピーします。これは後ほど/etc/apache2/conf-available/passenger.conf で設定します。

Redmine をデプロイ

ディレクトリごとファイルを移動。ここでは、/var/lib 配下に移動させます。

シンボリックリンクを張ります。

フォルダのオーナーとグループを変更します。

Apache2 の設定

passenger.conf

/etc/apache2/conf-available/passenger.conf を作成し、設定を有効にします。

redmine.conf

/etc/apache2/sites-available/redmine.conf を作成し、サイトの設定を有効にします。

設定は、サイトURLのサブディレクトリ /redmine にRedmine を配置するようにしています。

/usr/local/rbenv 以下のオーナーの変更

残念ながら、/usr/local/rbenv 以下のディレクトリやファイルについて、オーナーが root 以外だと、The application process exited prematurely.というログを吐いて、redmineを起動できないので、オーナーを変更します。

Redmine のインストールを確認

Apache2 を再起動します。

その後、http://サイトURL/redmine にアクセスしてみて、Redmine のホームが表示されるかどうか確認します。

エラーが発生する場合は、/var/log/apache2/error.log を確認して対処してください。

ModSecurity を使用している場合

/etc/modsecurity/modsecurity_crs_99_whitelist.conf を作成し、次のように記述します。

保存したら、Apache2 を再起動します。

マイグレーションする場合のヒント

Redmine 3.2 から 4.0.3 にマイグレーションしたときのヒントです。

移す必要のある設定・データ

以下のファイルを、古い環境から新しい環境に移します。

  • config/database.ymlと、config/configuration.yml
  • files/以下のファイル
  • plugins/と、public/themes/以下のファイル
  • データベースは、sqldump コマンドでバックアップを取得しておきます

必要なパッケージのインストール

もし、redmine-4.0.1/var/lib にデプロイしている場合は、一旦アプリケーションのオーナーとグループを変更します。もし作業しているユーザーが user1 であるならば、

もし、デプロイ前で、作業ユーザのディレクトリにある場合は特にオーナーやグループを変更する必要はありません。

bundle install を実行し、Gem をインストールします。

※システムにImagemagichがインストールされていない場合は、

データベース設定でアダプターを指定し直した場合は、忘れずに bundle install を再実行してパッケージを更新する必要があります。

Redmine で必須ではない Gem をインストールしたい(例えば、fcgiのような)場合、Redmineのルートディレクトリに、Gemfile.localというファイルを作って、そこに書いておくといいよ、とのこと。bundle installした時に自動的にロードされる。

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

データベースのマイグレーション

バックアップしていたデータベースを、新しい環境にリカバリした後、次のコマンドを順に実行して、データベースをマイグレーションします。

最後に、オーナー、グループを変更した場合は、もとに戻します。

ユーザ権限のチェック

[管理] → [役割と権限] で、新機能の権限等をチェックし設定。

まとめ

なんだかグダグダです。
時間が立ってしまっているのもあり、記憶が曖昧な部分もあります。
可能な限り再検証していますが、どうでしょうか・・

また、Ruby の Webアプリケーション の環境構築等は初めてなので、あまり良くわからないままやっています。
Rbenv は便利そうですが、ここで書いた内容で正解なのかどうか、よくわかっていません。
とにかく、動くこと優先で記事を書いています。

ひとまず、平成最後の更新です。


  1. 現在のバージョンは 4.1 
  2. 各値は任意に設定できます。 
  3. Ruby の標準ライブラリに入っている、汎用 HTTPサーバーフレームワーク。 

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です