0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WindowsにRedmine5.0.1を手動インストールする方法

Last updated at Posted at 2022-05-25

#最初に投稿した際、Windowsサービスに登録する方法がわかりませんでしたが、試行錯誤した結果、Windowsサービスに登録する方法が判明したため修正しました

はじめに

RubyとかRailsとか一切触ったことがなかったのでかなり苦労したが、なんとかインストールできたので備忘録をかねて記事に残しておく。
#苦労した甲斐もあり、Redmineの仕組みの理解も進んだこともあり、今ならBitnami版でインストールした後にRuby、DBだけを最新版にバージョンアップしたりすることもたぶんできそう

経緯

Bitnami版をインストールしたことはあったのだが手動でのインストールに挑戦したかった。
手動インストールのやり方を知っておけば、社内利用においてもソフトウェア脆弱性対応とかにもわりと対応できますし(というかこれが本当の経緯)

インストール環境

OS Windows Server 2019
Redmine 5.0.1
DB MariaDB 10.8.3
Ruby 3.1.2
Rails 6.1.6
Webサーバ Thin

※Railsのバージョンは意識していない(勝手に6.1.6が入っていただけ)

前提

インターネットに接続できる環境でないとインストールできません。
プロキシサーバ、セキュリティソフトなどの影響もあるとインストールできないこともあるかと。

手順

インストーラ入手

・Redmine
 → https://www.redmine.org/projects/redmine/wiki/Download
  → redmine-5.0.1.zip

・MariaDB
 → https://mariadb.org/download/?t=mariadb&p=mariadb&r=10.8.3&os=windows&cpu=x86_64&pkg=msi&m=xtom_jp

・Ruby
 → https://rubyinstaller.org/downloads/
  → Ruby+Devkit 3.1.2-1 (x64)
   ※WITH DEVKIT版にしないといけないみたい

Rubyインストール

1. ダウンロードしたインストーラを実行
2. すべてデフォルトのままインストールした
image.png
image.png

3. インストール完了後、「Run 'ridk install'・・・」にチェックを付けたままFinish
image.png

4. コマンドウィンドウが起動するので、1,2,3と順番にインストールした
完了したらコマンドウィンドウは閉じてOK
image.png

MariaDBインストール

1. ダウンロードしたインストーラを実行
2. 基本的にデフォルトのままインストール
※唯一、赤枠部のみチェック(デフォルト文字コードをUTF8)を付けた(たぶんチェックは付けなくてもよさげ)
image.png
image.png

Redmineインストール

公式インストール手順を参考にインストールしていく
https://www.redmine.org/projects/redmine/wiki/redmineinstall

1. Step 1 - Redmine application
はい。インストールする場所を決めてZIPファイルを解凍するだけです。
私は以下の場所にインストールしました。
image.png

2. Step 2 - Create an empty database and accompanying user
MariaDBをインストールしたので、「MySQL」欄に記載のSQLを実行します。
SQLって?という人向けにやることだけ説明すると、
(1) コマンドプロンプトを開き、MariaDBインストールフォルダのbinフォルダまで移動(cd)します
(2) 以下のコマンドを実行して、インストール時に指定したrootユーザのパスワードも入力してDBに接続します

mysql -u root -p

(3) 公式手順に記載されているSQLをコピペして実行します
  ※redmineユーザのパスワード('my_password'部分)は変更した方がよいです

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

image.png

3. Step 3 - Database connection configuration
これも公式手順通りに進めます。
私の場合、mariaDBなのでMYSQL欄に従い設定しました。
image.png

4. Step 4 - Dependencies installation
※本ステップで実行するコマンドは管理者権限でコマンドプロンプトを開いて実行
(1) まずはコマンドプロンプトを開き、bundlerを以下のコマンドでインストールする

gem install bundler

(2) Redmineが利用するすべてのgemを以下のコマンドでインストールする

bundle install --without development test

(3) Optional dependencies
ここは不要そうなのでスキップ

(4) Additional dependencies (Gemfile.local)
とりあえずスキップ

5. Step 5 - Session store secret generation
Cookieの改ざんを防ぐために以下のコマンドを実行

bundle exec rake generate_secret_token

6. Step 6 - Database schema objects creation
★このステップがものすごく苦労しました
Windowsにインストールするので、以下のコマンドを実行してredmineのDBを構築します

set RAILS_ENV=production
bundle exec rake db:migrate

以下のエラーが出ました
image.png

本エラーを解消するため、以下のファイルを修正

<Redmineインストールフォルダ>\Gemfile
- gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
+ gem 'tzinfo-data'

コマンド再実行

set RAILS_ENV=production
bundle exec rake db:migrate

先ほどのエラーは解消できたようですが、違うエラーが出ました
image.png

本エラーを解消するため、mysql2のgemを手動でインストールします。

gem install mysql2 --platform=ruby -- --with-mysql-lib="C:\Program Files\MariaDB 10.8\lib"

※--with-mysql-libにはmariaDBインストールパス配下のlibフォルダまでのフルパスを指定

コマンド再実行

set RAILS_ENV=production
bundle exec rake db:migrate

同じエラーがまだ出る・・・
image.png

本エラーを解消するため、以下のファイルを修正

<Redmineインストールフォルダ>\Gemfile
- gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
+ gem "mysql2"

コマンド再実行

set RAILS_ENV=production
bundle exec rake db:migrate

やっとエラーが出なくなった!!!

7. Step 7 - Database default data set
公式サイトとは少し違いますが、以下を実行します。

set RAILS_ENV=production
bundle exec rake redmine:load_default_data

途中、言語選択を求められるので ja を入力
image.png

8. Step 8 - File system permissions
Windowsの場合は本手順はスキップしてOK

9. Step 9 - Test the installation
インストールのテストを行いますが、本手順はスキップ
※ここもすんなりできませんでしたが、所詮、テストですから・・・

代わりに本番用のWebサーバ(Thin)を起動します

とりあえず起動コマンドを実行してみる

bundle exec thin start -e production -p 80 -a 0.0.0.0 -c "C:\Redmine\redmine-5.0.1"

※-p : ポート番号(Webブラウザからアクセスさせる)を指定
 -c : redmineインストールパスを指定

以下のエラーが出る
image.png

本エラーを解消するため、以下のファイルを修正(末尾に追加)

<Redmineインストールフォルダ>\Gemfile
+ gem 'thin'

bundle installし直す

bundle install --without development test

起動コマンドを再実行

bundle exec thin start -e production -p 80 -a 0.0.0.0 -c "C:\Redmine\redmine-5.0.1"

以下のように表示されたので起動したっぽい!!!
image.png
※停止する場合はCtrl+C

10. Step 10 - Logging into the application
Webブラウザからログイン確認
※Webサーバ起動時に80ポートを指定したため以下のURLとなる
 80ポート以外を指定した場合は適宜、ポート番号を指定したURLにアクセス

やっとで表示できた!!!
image.png

デフォルトの管理者アカウントでログインしてみましょう
ID : admin
PW : admin

ログイン後はパスワード変更を求められるので、変更します
image.png

お疲れ様でした。

その他

WebブラウザからのアクセスURLに/redmineを付ける場合の設定

アクセスURLからどのようなサービスに接続しているのかが分かった方が親切だと思うので、
http://localhost/redmine/
のようにしたい場合の説明

以下のファイルを修正(末尾に追加)

<Redmineインストールフォルダ>\config\environment.rb
+ Redmine::Utils::relative_url_root = "/redmine"

redmine起動コマンドを以下(-prefix "/redmine"を追加)にして実行
※redmine起動中であれば停止してから実行

bundle exec thin start -e production -p 80 -c "C:\Redmine\redmine-5.0.1" --prefix "/redmine"

ログ設定

確か初期設定のままだとログが肥大化し続けるので、一定サイズでローテーションする設定に変更
※公式サイトにも記載あるので詳細はそっちを参照

こんなことやりました(1ファイルあたり約1MBで10世代分保持。最大でもログは10MB程度)。
・<Redmineインストールフォルダ>\config\additional_environment.rb.example をコピー後、additional_environment.rbにリネーム
・config.logger = Logger.new('log/production.log', 10, 1000000)

設定変更したら、redmine再起動で反映されます

OS起動時にredmineが自動実行されるようにする

thin_serviceっていうgemをインストールすればWindowsサービスとして登録できて、そこから自動起動できるらしいんですが、私はできませんでした・・・ここまできたのに悔しい・・・

なので、タスクスケジューラに起動用バッチを設定して自動実行されるようにしました。
※いろいろ試してごちゃごちゃした影響があるのかもしれませんが、タスクスケジューラのタスクを終了させてもThinは停止しなかったので、Thin停止用のバッチ(VBS)を作成して、そこから停止するっていう面倒な構成になってしまいましたが・・・

自己解決できました!

そもそもですが、thin_serviceを実行した時に以下のようなエラーが出てました。
image.png
ググっても改善方法が見つかりませんでしたが、コマンドプロンプトの文字コードを変えれることをふと思い出し、UTF8に変更してから実行したらどうなるかと試してみたら普通に成功しちゃいました。

ということで、Windowsサービスとして登録する手順を説明します。

※以下で実行するコマンドは管理者権限でコマンドプロンプトを開いて実行

(1) 以下のコマンドでThin Serviceをインストールする

gem install thin_service

(2) 以下のコマンドでコマンドプロンプトの文字コードをUTF8に変更する

chcp 65001

(3) 以下のコマンドでWindowsサービスにThin Serviceを登録する

thin_service install -N "Redmine-5.0.1 Thin Service" -e production -p 80 -c "C:\Redmine\redmine-5.0.1" --prefix "/redmine"

※-N : Windowsサービスとして登録するサービス名を指定
 その他はRedmine起動コマンド時に指定したオプションを指定

実行結果として以下のように表示されれば成功です。
image.png

(4) Windowsサービスには手動起動設定として登録されていたので、OS起動時に自動起動するように設定変更
image.png

ここまで設定できたら、Windowsサービスから起動してみてRedmineにアクセスできること、OS再起動後、何もしなくともRedmineにアクセスできることを確認できれば問題ありません
※別途、インストールしたMariaDBは自動起動する設定でインストールされているため、MariaDBに関しては何もしなくとも自動起動します

その他、思うこと

大規模環境とか、インターネットサービスとして公開するのであれば、負荷軽減、セキュリティ面でいろいろ考慮しなければならないことは多いと思います。私の場合、社内の小規模環境での利用となるため、そこまでは検討しませんでしたが・・・

ちなみに、Bitnamiでインストールした場合、Thinサービスが2つ登録されており、Apache側でリクエストを受けて、2つのThinサービスにロードバランスするような構成になってました。Thinサービスは3つ、4つと増やせるようですので、やり方を知りたい人は「Bitnami redmine Thin 増やす」などでググってみてください。

あとは、そこまで解析していませんが、画像ファイル、CSS、JSなどの静的ファイルはApache側で処理するような仕組みも入っているのかもしれません(Thinには動的処理のみ行わせる方が負荷軽減になりそうですし)。やり方を知りたい人は「Rails apache 静的ファイル」などでググってみてください。

このような構成をとるのであれば、(扱ったことはありませんが)ApacheではなくNginxがよさそうな気がします。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?