2012年9月17日月曜日

Redmineの構築(その2)

Windows 7上でRedmine2.x系の構築を行う。

・apache
apacheのサイト(http://httpd.apache.org/download.cgi#apache22)から以下をダウンロードして、インストールする。
 httpd-2.2.22-win32-x86-no_ssl.msi

・JRE
http://www.oracle.com/technetwork/java/javase/downloads/jre6u35-downloads-1836473.html)より、以下をダウンロードして、インストールする。
 jre-6u35-windows-i586.exe

・MySQL
MySQLのGUIを使うため、マイクロソフト(http://www.microsoft.com/ja-jp/net/netfx4/download.aspx)より、.NET Framework 4をインストールする。

MySQLのサイト(http://dev.mysql.com/downloads/)から以下をダウンロードして、インストールする。
 mysql-installer-community-5.5.27.2.msi

・Ruby
Rubyのサイト(http://rubyinstaller.org/downloads/)より、以下をダウンロードして、インストールする。
 rubyinstaller-1.8.7-p370.exe
 DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe

・redmine
 
redmineのサイト(http://rubyforge.org/frs/?group_id=1850)より、redmine-2.0.3.zipをダウンロードする。

・ImageMagick
rubyのサイト(http://rubyforge.org/frs/?group_id=12)より、RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zipをダウンロードする。ファイル解凍後、C:\Tempに置く。ImageMagick-6.5.6-8-Q8-windows-dll.exeを実行し、C/C++ のヘッダーファイルも一緒にインストールする。(インストール時のチェックボックスでチェックをつける。)
<事前準備>
①MySQL
・MySQL Workbenchを起動し、[Open Connection to start querying]より、スキーマredmineを作成する。
・[Manage Security]より、ユーザredmineを作成する。Object Rights、DDL Rights、Other Rightsにて、すべての権限を付与する。

②Devkit
DevkitをC:\Devkitにインストール後、以下を実行する。
C:\Devkit> ruby dk.rb init
C:\Devkit> ruby dk.rb install
ダウンロードしたファイルを解凍して、C:\redmineとする。

③Gemfile
・ImageMagick のインストールディレクトリを環境変数の PATH に追加する。
・ImageMagick のインストールディレクトリ内にある include ディレクトリのパスを環境変数 CPATH に追加する。
・ImageMagick のインストールディレクトリ内にある lib ディレクトリのパスを環境変数 LIBRARY_PATH に追加する。
<Webrickでの構築手順>
・C:\redmine> gem install bundler
・C:\redmine> bundle install
・config/database.example.yml をコピーして config/database.yml を作成する。
また、config/database.yml を編集し、"production"環境用のデータベース設定を行う。
====================================
 production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: redmine
====================================
・以下のサイトからダウンロードしたlibmysql.dllをC:\Ruby\binにコピーする。
http://www.dll-files.com/dllindex/dll-files.shtml?libmysql

・C:\Program Files\ImageMagick-6.5.6-Q8\CORE_RL_magick_.dllをC:\Ruby\binにコピーする。

・C:\redmine> rake generate_secret_token
・C:\redmine> rake db:migrate RAILS_ENV=production
・C:\redmine> rake redmine:load_default_data RAILS_ENV=production
Select language: ar, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi,fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja
====================================
Default configuration data loaded.

・C:\redmine> ruby script/rails server webrick -e production
[Ctrl] + Cで閉じる。

<Mongrelでの構築手順>
・C:\redmine> gem install mongrel --pre
・C:\redmine\gemfileに以下を追記。
gem 'mongrel', '>= 1.2.0.pre2'
・C:\redmine> ruby script/rails server mongrel -e production
[Ctrl] + Cで閉じる。
・自動起動させたいと考え、管理者権限でDOCコマンドを起動して、以下を実行する。
C:\redmine> mongrel_rails service::install -N "Redmine" -c "C:\redmine" -p 3000 -e production

・MySQLとの依存関係を持たせたいので、管理者権限でDOCコマンドを起動して、以下を実行する。
C:\redmine> sc config Redmine start= auto depend= MySql55

・但し、自動起動は不可の模様。C:\redmine\log\mongrel.logより
 C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-3.2.8/lib/active_support/dependencies.rb:251:
 in `require': no such file to load -- dispatcher (LoadError)

 ★unicorn、passengerも同様、Windowsでは動かない。

<thinでの構築手順>
・C:\redmine\gemfileに以下を追記。
gem 'thin'
・C:\redmine> bundle install
・C:\redmine> ruby script\rails server thin -e production
[Ctrl] + Cで閉じる。
・自動起動させたいと考え、http://www.microsoft.com/en-us/download/details.aspx?id=17657より、rktools.exeをダウンロードして、インストールする。

・管理者権限でDOCコマンドを起動して、以下を実行する。
C:\redmine> "C:\Program Files\ Resource Kits\Tools\INSTSRV.EXE" _service "C:\Program Files\Windows Resource Kits\Tools\SRVANY.EXE"

・regeditを実行して、レジストリを編集する。

1.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\redmine_serviceに、Parametersという名前のキーを追加する
2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\redmine_service\Parametersに、Application、AppParameters、AppDirectoryという名前の文字列値を新規作成する
Applicationは、Ruby.exeのフルパス。例えば、C:\Ruby\bin\ruby.exe
AppParametersは、thinとthinに渡すパラメータ。例えば、C:\Ruby\bin\ start -p 3000 -e production
AppDirectoryは、redmineをインストールした場所。例えば、C:\redmine

・MySQLとの依存関係を持たせたいので、管理者権限でDOCコマンドを起動して、以下を実行する。
C:\redmine> sc config redmine_service start= auto depend= MySql55
・リブートする。

<subdirectory化> ※rails3のみ
・C:\redmine\config.ruの編集
[変更前]
# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment',  __FILE__)
run RedmineApp::Application
[変更後]
# This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment',  __FILE__)
map ENV['RAILS_RELATIVE_URL_ROOT'] || "/" do
  run RedmineApp::Application
end

・C:\redmine\config\environment.rbの編集
最終行に以下を追記
[変更前]
RedmineApp::Application.initialize!
[変更後]
RedmineApp::Application.initialize!
ENV['RAILS_RELATIVE_URL_ROOT'] = "/redmine"

[変更前]
  config.active_support.deprecation = :log
end
・C:\redmine\config\environments\production.rbの編集
最終行より少し前に以下を追記

[変更後]
  config.active_support.deprecation = :log
  config.action_controller.asset_path = "/redmine%s"
end
・C:\redmine> ruby script/rails server thin -e production -p 3000
http://localhost:3000/redmine
でアクセス可能となる。

<Proxy化>
・httpd.confの修正
LoadModule alias_module modules/mod_alias.so
~省略~
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so

~省略~
Alias /redmine/ "C:/redmine/public/"
<Directory "C:/redmine/public">
    Options ExecCGI Includes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
ProxyPass /redmine http://localhost:3000/redmine
ProxyPassReverse /redmine http://localhost:3000/redmine

・apache再起動
http://<FQDN>/redmine
でアクセス可能となる。