はじめに
バイナリ版の組み合わせでRedmineを起動できるようにしました。
Dockerを利用したほうがいいと思いながらも、そもそもインストールに制限がある等の状況を想定しています。
(追記 2023/1/6)
始めはJRubyでRedmineを起動しましたが、Git連携が上手くいかなかったためRubyInstallerで入れ直しました。
そのため、Rubyのパッケージを取得するためのMSYS2のみレジストリにインストールしています。
Redmineの起動まで成功すればMSYS2の無い別環境にもファイルコピーするだけで起動できるはずです。
環境
- Windows 10 Home
- 本体 → Redmine 4.2.9
- Ruby →
JRuby 9.3.9.0(→RubyInstaller-2.7.7-1) - OpenJDK → Amazon Corretto 17.0.5.8.1
- データベース → PostgreSQL 14.6.1
概要
主にRedmineのインストールガイドを参考にしています。
- 必要データのダウンロード
- パスの設定ファイル作成
- PostgreSQLの準備
- Redmineの設定
- Redmineの起動バッチ作成
1. 必要データのダウンロード
Redmineに必要なツールをダウンロードし、任意のディレクトリに格納します。
以降、このディレクトリを%REDMINE_ROOT%
と表記します。
%REDMINE_ROOT%
├─amazon-corretto-17.0.5.8.1-windows-x64-jdk
├─ImageMagick-7.1.0-56-portable-Q16-x64
├─jruby-dist-9.3.9.0-bin
├─postgresql-14.6-1-windows-x64-binaries
└─redmine-4.2.9
(追記 2023/1/6)
JRubyではなくRubyInstallerの場合はRubyのパスが変わります。
%REDMINE_ROOT%
├─amazon-corretto-17.0.5.8.1-windows-x64-jdk
├─ImageMagick-7.1.0-56-portable-Q16-x64
├─rubyinstaller-2.7.7-1-x64
├─postgresql-14.6-1-windows-x64-binaries
└─redmine-4.2.9
1.1. Redmine
Redmineダウンロードページよりredmine-4.2.9.zip
をダウンロードします。
1.2. Ruby
Redmineと対応Rubyバージョンのページより必要なRubyのバージョンを確認します。
今回はRedmine4.2.9をインストールするため、Ruby2.6.Xに対応しているバイナリ版Jruby9.3.9.0としました。
JRubyのダウンロードページよりJRuby 9.3.9.0 Binary .zip
をダウンロードします。
(追記 2023/1/6)
JRubyでもRedmine起動は出来ましたが、Git連携が出来ませんでした(Windowsと相性が悪い?)。
そのため、RubyInstallerに切り替えました。
RubyInstallerのダウンロードページより7-ZIP ARCHIVES版のRuby2.7.7-1
をダウンロードします。
後の工程でRubyの必要パッケージをインストールしますが、Devkit(MSYS2)が必要です。
そのためMSYS2を事前にインストールしておきます。
1.3. OpenJDK
OpenJDKにはAmazon Correttoを利用します。
Amazon Corretto 17のダウンロードページよりamazon-corretto-17-x64-windows-jdk.zip
をダウンロードします。
1.4. PostgreSQL
PostgreSQLのダウンロードページよりバイナリ版をダウンロードします。
今回はPostgreSQLバージョン14.6をダウンロードしています。
1.5. ImageMagick
エクスポート時の画像操作に必要なようです。念のために入れておきます。
ImageMagickのダウンロードページよりWindowsバイナリ版ImageMagick-7.1.0-56-portable-Q16-x64.zip
をダウンロードします。
2. パスの設定ファイル作成
各実行ファイルのパスを一時的に設定するバッチファイルsettings.bat
を%REDMINE_ROOT%
ディレクトリに格納します。
set REDMINE_ROOT=%~dp0
set JAVA_HOME=%REDMINE_ROOT%amazon-corretto-17.0.5.8.1-windows-x64-jdk\jdk17.0.5_8
set JRUBY_HOME=%REDMINE_ROOT%jruby-dist-9.3.9.0-bin\jruby-9.3.9.0
set POSTGRES_HOME=%REDMINE_ROOT%postgresql-14.6-1-windows-x64-binaries
set IMAGICK_HOME=%REDMINE_ROOT%ImageMagick-7.1.0-56-portable-Q16-x64
set REDMINE_HOME=%REDMINE_ROOT%redmine-4.2.9
set PATH=%PATH%;%JAVA_HOME%\bin
set PATH=%PATH%;%JRUBY_HOME%\bin
set PATH=%PATH%;%IMAGICK_HOME%
rem PostgreSQLスーパユーザのパスワード(PostgreSQL設定時に合わせる)
set PGPASSWORD=postgres
(追記 2023/1/6)
JRubyではなくRubyInstallerの場合はRubyのパスが変わります。
set REDMINE_ROOT=%~dp0
set JAVA_HOME=%REDMINE_ROOT%amazon-corretto-17.0.5.8.1-windows-x64-jdk\jdk17.0.5_8
set RUBY_HOME=%REDMINE_ROOT%rubyinstaller-2.7.7-1-x64
set POSTGRES_HOME=%REDMINE_ROOT%postgresql-14.6-1-windows-x64-binaries
set IMAGICK_HOME=%REDMINE_ROOT%ImageMagick-7.1.0-56-portable-Q16-x64
set REDMINE_HOME=%REDMINE_ROOT%redmine-4.2.9
set PATH=%PATH%;%JAVA_HOME%\bin
set PATH=%PATH%;%RUBY_HOME%\bin
set PATH=%PATH%;%IMAGICK_HOME%
rem PostgreSQLスーパユーザのパスワード(PostgreSQL設定時に合わせる)
set PGPASSWORD=postgres
3. PostgreSQLの準備
データクラスタ、ログ、本体の階層は次のようにしています。
%REDMINE_ROOT%
└─postgresql-14.6-1-windows-x64-binaries
├─data
├─log
└─pgsql
ここではコマンドのみを記載します。%REDMINE_ROOT%
は自身で配置したパスに置き換えてください。
データクラスタ作成時のスーパユーザのパスワードはsettings.bat
に合わせてpostgres
とします。
rem データクラスタ作成
cd %REDMINE_ROOT%
call settings
cd %POSTGRES_HOME%
mkdir data
mkdir log
set data_dir="%POSTGRES_HOME%\data"
%POSTGRES_HOME%\pgsql\bin\pg_ctl initdb -D %data_dir% -o "-U postgres -E UTF8 --no-locale -A scram-sha-256 -W"
rem PostgreSQL起動
set data_dir="%POSTGRES_HOME%\data"
set log_file="%POSTGRES_HOME%\log\postgresql.log"
%POSTGRES_HOME%\pgsql\bin\pg_ctl start -w -D %data_dir% -l %log_file% -o "-p 5432"
rem PostgreSQLログイン
%POSTGRES_HOME%\pgsql\bin\psql -h localhost -p 5432 -U postgres -d postgres
PostgreSQL設定の詳細な手順は過去記事を参照してください。
4. Redmineの設定
4.1. Redmine用のロール、データベース作成
PostgreSQLにスーパユーザpostgresでログインし、Redmine用のロールと空のデータベースを作成します。
テスト的に全て同じredmineにしています。
- ロール名:redmine
- パスワード:redmine
- データベース名:redmine
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'redmine' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
4.2. データベースへの接続設定
%REDMINE_ROOT%\redmine-4.2.9\config
内のdatabase.yml.example
を同ディレクトリにdatabase.yml
としてコピーします。
その後、database.yml
の中身を削除し、PostgreSQLの内容のみを記述します。
# PostgreSQL configuration example
production:
adapter: postgresql
host: localhost
port: 5432
database: redmine
username: redmine
password: "redmine"
4.3. 依存するソフトウェアのインストール
%REDMINE_ROOT%\redmine-4.2.9\Gemfile
を開き、一部内容を変更します。
- Windows端末のため後半情報を削除
# 修正前
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
# 修正後
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data'
- JRubyのためコメントアウト(※RubyInstallerの場合は修正しない)
# 修正前
# Optional Markdown support, not for JRuby
group :markdown do
gem 'redcarpet', '~> 3.5.1'
end
# 修正後
# Optional Markdown support, not for JRuby
# group :markdown do
# gem 'redcarpet', '~> 3.5.1'
# end
- PostgreSQLのためアダプタ追加
# 修正前
when /postgresql/
gem "pg", "~> 1.2.2", :platforms => [:mri, :mingw, :x64_mingw]
# 修正後
when /postgresql/
gem "pg", "~> 1.2.2", :platforms => [:mri, :mingw, :x64_mingw]
gem 'activerecord-jdbcpostgresql-adapter'
4.4. 依存するソフトウェアのインストール
Redmineに必要なgemをインストールします。
%REDMINE_ROOT%
は自身で配置したパスに置き換えてください。
cd %REDMINE_ROOT%
call settings
cd %REDMINE_HOME%
bundle config build.pg --with-pg-config=%POSTGRES_HOME%\pgsql\bin\pg_config
bundle install --without development test
4.5. セッションストア秘密鍵の生成
コマンドを実行します。
cd %REDMINE_ROOT%
call settings
cd %REDMINE_HOME%
bundle exec rake generate_secret_token
4.6. データベースのテーブル等の生成
PostgreSQLを起動している状態でコマンドを実行します。
cd %REDMINE_ROOT%
call settings
cd %REDMINE_HOME%
set RAILS_ENV=production
bundle exec rake db:migrate
4.7. デフォルトデータの生成
PostgreSQLを起動している状態でコマンドを実行します。
cd %REDMINE_ROOT%
call settings
cd %REDMINE_HOME%
set RAILS_ENV=production
set REDMINE_LANG=ja
bundle exec rake redmine:load_default_data
4.8. インストールの確認
WEBrickによるwebサーバを起動し、正常に動作するか確認します。
成功すれば、ブラウザで http://localhost:3000/
を開くとRedmineのページが表示されます。
Redmineの初期ユーザ名とパスワードは共にadmin
です。
cd %REDMINE_ROOT%
call settings
cd %REDMINE_HOME%
bundle exec rails server webrick -e production
5. Redmineの起動バッチ作成
Redmineの起動バッチを%REDMINE_ROOT%
に配置しておけば、次回以降の起動が楽になります。
PGPASSWORD
にpostgresユーザのパスワード設定後、PostgreSQLを起動しRedmineを起動しています。
終了する場合はCtrl+C
です。
cd %~dp0
call settings
set data_dir="%POSTGRES_HOME%\data"
set log_file="%POSTGRES_HOME%\log\postgresql.log"
set PGPASSWORD=postgres
%POSTGRES_HOME%\pgsql\bin\pg_ctl start -w -D %data_dir% -l %log_file% -o "-p 5432"
cd %REDMINE_HOME%
bundle exec rails server webrick -e production