RedmineをWindowsに構築したい。Linuxでの構築手順は多いけどWindowsってほとんどない。。
本記事ではこの悩みを解決します。
タスク管理ツールの定番であるRedmineは一般的にLinux環境へ構築することがほどんど。
そのためWindowsへのインストール手順ってあまり情報が無いんです。
今回、事情がありWindows環境へRedmineを構築したためその手順を書いていきます。
本記事を読めばWindows環境でもRedmineを動かすことができます。
構築するRedmine on Windows環境構成を確認
今回構築した環境は上図のような構成です。
ポイントは2つ。
- Apacheの代わりにXamppを使う
- 日常運用を想定してpumaサーバを使う
LinuxのWebサーバであるApacheはWindowsでは基本的に使えません。
そのためWindowsでApache機能を実現してくれるXamppを使います。
またRuby on Rails上のWebアプリケーションサーバは開発用のRailsサーバを使うのではなく、Pumaを使ってWindowsサービス化し本番運用として実用的な環境を構築します。
それでは実際の構築手順を見ていきましょう。
Redmine on Windows環境の構築手順(基本部分)
今回環境を構築するにあたり以下サイトを参考にさせて頂きました。
基本部分は参考サイトの手順に従って実施していきます。
Ruby on Rails環境インストール
Ruby on Rails用インストーラを以下サイトよりダウンロードし実行します。
・rubyinstaller-2.5.7-1-x86.exe
xamppインストール
xamppのインストーラをダウンロードし実行します。
XAMPP
Download XAMPP for free. An easy to install Apache distribution containing MySQL, PHP, and Perl. XAMPP is a very easy to...
・xampp-win32-7.3.2-0-VC15-installer.exe
本手順では D:\xampp へインストールしました。
redmine本体インストール
redmine本体を以下サイトよりダウンロードします。Download - Redmine
Redmine
・redmine-4.0.5.zip
ダウンロードしたzipファイルを解凍し D:\xampp\htdocs に移動してください。
MySQLインストール
xamppインストール時に付属で自動的にインストールされるため、改めてインストールする必要はありません。空のデータベースとユーザーの作成
参考サイトの「MySQLの場合」手順に従い初期DBを作成します。データベースに接続するための設定
参考サイトの「MySQLの例」手順に従いDBへの接続設定を行います。依存ソフトウェアのインストール
bundle制御用ソフト「msys」のインストーラをダウンロードし実行します。
Page not found
- SourceForge.net
Free, secure and fast downloads from the largest Open Source applications and software directory - SourceForge.net
・msys2-i686-20190524.exe
また、gemコマンドで各種ソフトウェアをインストールします。
Gemfileが存在する D:\xampp\htdocs\redmine フォルダ内で以下コマンドを実行すればredmineに必要なソフトウェアが自動的にインストールされます。
Gemfileが存在する D:\xampp\htdocs\redmine フォルダ内で以下コマンドを実行すればredmineに必要なソフトウェアが自動的にインストールされます。
D:\xampp\htdocs\redmine>bundle install
開発用サーバ起動、動作確認
以下コマンドで、Rails環境に用意されている開発用サーバ起動を起動します。
D:\xampp\htdocs\redmine>rails s -e production
ブラウザで以下URLにアクセスし動作確認をします。
Redmine画面が表示されれば動作確認OKです。
Railsコマンドで起動した開発用サーバはウィンドウを閉じるとサーバーが停止してしまいます。
開発用であればそれでもOKなのですが、本番運用を想定した場合は都合が良くありません。
そのため本番用のWebアプリケーションサーバを導入します。
本番用Webアプリケーションサーバ(Puma)インストール、起動、動作確認
以下コマンドでpumaをインストールします。
D:\xampp\htdocs\redmine>gem install puma
以下コマンドで本番用サーバを起動します。
D:\xampp\htdocs\redmine>rails s puma -e production
以下URLにアクセスしブラウザで動作確認します。
http://localhost:3000/
Redmine画面が表示されれば動作確認OKです。
Redmine on Windows環境の構築手順(拡張部分)
しかしより便利に運用するため以下の2つを設定します。
- アクセスURLのサブフォルダ化
- WebアプリケーションサーバのWindowsサービス化
RedmineへのアクセスURLを「http://localhost/redmine」に変更します。
これにより同一サーバへ他サービスを導入したい場合でも対応できますし、何より分かり易いですよね。
またpumaで起動したWebサーバをWindowsサービス化し、マシン起動時に自動的にサーバが起動するように設定します。
アクセスURLのサブフォルダ化
XamppのVirtualHostを設定します。Xampp配下フォルダの conf\extra\http-vhosts.conf に以下設定を追加してください。
<VirtualHost *:80>
ServerAdmin webmaster@redmine.example.com
DocumentRoot "D:/xampp/htdocs/redmine"
ServerName localhost
ErrorLog "logs/redmine-error.log"
CustomLog "logs/redmine-access.log" common
ProxyPass /redmine http://localhost:3000/redmine
ProxyPassReverse /redmine http://localhost:3000/redmine
</VirtualHost>
追加モジュール有効化を行います。
conf\httpd.conf を編集し以下行のコメントを外してください。
LoadModule proxy_http_module modules/mod_proxy_http.so
※redmineの各メニューが「/redmine」になっていない場合は以下の参考URLに従って対処してください。
Redmine 設定のルートパスを設定します。
config/additional_environment.rb を以下のように変更してください。
config.relative_url_root = '/redmine'
config.ru設定を変更します。
D:\xampp\htdocs\redmine\config.ru を以下のように変更してください。
map '/redmine' do
run Rails.application
end
これで「http://localhost/redmine」URLでRedmineにアクセスできます。
WebアプリケーションサーバのWindowsサービス化
以下の参考手順に従って設定します。
以下フォルダにサービス実行用プログラム「service.rb」を作成します。
D:\xampp\htdocs\redmine\service.rb
D:\xampp\htdocs\redmine\service.rb
「service.rb」の中身は以下をコピーしてください。
REDMINE_DIR = 'D:\redmine'
LOG_FILE = "#{REDMINE_DIR}\\log\\service.log"
begin
require 'win32/daemon'
include Win32
class RedmineService < Daemon
def service_init
File.open(LOG_FILE, 'a'){ |f| f.puts "Initializing service #{Time.now}" }
@server_pid = Process.spawn 'ruby script/rails s -e production', :chdir => REDMINE_DIR, :err => [LOG_FILE, 'a']
end
def service_main
File.open(LOG_FILE, 'a'){ |f| f.puts "Service is running #{Time.now} with pid #{@server_pid}" }
while running?
sleep 10
end
end
def service_stop
File.open(LOG_FILE, 'a'){ |f| f.puts "Stopping server thread #{Time.now}" }
system "taskkill /PID #{@server_pid} /T /F"
Process.waitall
File.open(LOG_FILE, 'a'){ |f| f.puts "Service stopped #{Time.now}" }
exit!
end
end
RedmineService.mainloop
rescue Exception => e
File.open(LOG_FILE,'a+'){ |f| f.puts " ***Daemon failure #{Time.now} exception=#{e.inspect}\n#{e.backtrace.join($/)}" }
raise
end
以下のサービス登録コマンドを実行します。
sc create "Redmine Service" binPath= "C:\Ruby25\bin\rubyw -C D:\xampp\htdocs\redmine\ service.rb
その後Wndowsサービス画面から手動で自動(遅延)起動設定をすれば設定完了です。
コメント