手元のMacにインストールしてあるRedmineを1.4にバージョンアップしてみる。
Redmine1.4はruby1.9で動作する。1.8より速いので1.9で動かそう。
$ rvm install 1.9.3 $ rvm gemset create redmine $ rvm use 1.9.3@redmine
実行に必要なgemライブラリを入れる。Redmine 1.4ではgemライブラリをbundlerで管理できるので、gemで直接入れるのはbundlerとpassengerの2つだけ。
$ gem install bundler $ gem install passenger
bundlerで依存gemライブラリをインストール。bundler実行時にrmagickのインストールでこけるが、必須でないのでインストールしない。
$ bundle install --without rmagick
dbのユーザとパスワードその他を修正
$ vi config/database.yaml
sessionの暗号化キーを設定
$ vi config/environment.rb
以下をenvironment.rbに追加
config.action_controller.session = { :key => "redmine", :secret => "ひみつのキー" }
DBを1.4用にバージョンアップ
$ rake db:migrate RAILS_ENV=production
mysqlライブラリのロードに引っかかるようならotoolで調べてダイナミックライブラリのパスを直して。このブログを検索すればやり方は出てきます。
webrickで起動(rails 2.3 なので rails s ではない)して確認
$ ./script/server -e production
passengerで起動、初回起動時にnginxとpassengerをビルドします
$ passenger start -e production
自動起動のためにlaunchdの設定をする。すでにredmineのplistが設定されているならばアンロードする
$ launchctl unload /Users/nullpon/Library/LaunchAgents/jp.paulownia.redmine.plist
plist ファイルの作成 or 修正
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>jp.paulownia.redmine</string> <key>KeepAlive</key> <false/> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>/Users/nullpon/command/redmine/current</string> <key>ProgramArguments</key> <array> <string>/Users/nullpon/.rvm/bin/ruby-1.9.3-p0@redmine</string> <string>/Users/nullpon/.rvm/gems/ruby-1.9.3-p0@redmine/bin/passenger</string> <string>start</string> <string>-e</string> <string>production</string> <string>-p</string> <string>3939</string> </array> <key>StandardOutPath</key> <string>/Users/nullpon/command/var/log/redmine.out</string> <key>StandardErrorPath</key> <string>/Users/nullpon/command/var/log/redmine.err</string> </dict> </plist>
plistをロード
$ launchctl load /Users/nullpon/Library/LaunchAgents/jp.paulownia.redmine.plist
http://localhost:3939/ にアクセスできればlaunchdからの起動が成功。管理者でログインして1.4で動いてる事を確認する