2007-07-29
■ [AoR2007][redMine] Drecom Award on Rails 2007のレンタルサーバにredMineをセットアップ

Drecom Award on Rails 2007に参加している人に、ちょっとお手伝いをすることになったよ。
まずはDrecom Award on Rails 2007のレンタルサーバでプロジェクト管理ツールredMineをセットアップしたから、メモとして残しておくよ。
開発用サーバへのログイン
$ ssh -p [sshポート番号] [レンタルサーバのホスト名] -l [ログインID]
ダウンロード
redMineのダウンロードサイトを見て、最新版をダウンロードするよ。ここでは、バージョン0.5.1をダウンロードしたよ。ダウンロードにはwgetコマンドを利用するよ。
% wget http://rubyforge.org/frs/download.php/22783/redmine-0.5.1.tar.gz
ダウンロードしたファイルは圧縮されているから、tarコマンドで展開するよ。展開するとredmine-0.5.1というディレクトリができるから、cdコマンドで移動するよ。
% tar xvzf redmine-0.5.1.tar.gz % cd redmine-0.5.1
SQLite3をlibに追加
Awarad on Railsのレンタルサーバでは、利用できるMySQLのデータベースはひとつだけだよ。そこで、redMine用に独自のデータベース(SQLite3)をセットアップするよ。
SQLite3のライブラリをlibに追加
SQLiteのダウンロードサイトを見て、Linuxのバイナリの最新版をダウンロードするよ。ここでは、バージョン3.4.1をダウンロードしているよ。ダウンロードにはwgetコマンドを利用するよ。
% wget http://www.sqlite.org/sqlite-3.4.1.so.gz
ダウンロードしたファイルは圧縮されているから、gunzipコマンドで展開するよ。展開したファイルはmvコマンドでlibディレクトリに移動するよ。
% gunzip sqlite-3.4.1.so.gz % mv sqlite-3.4.1.so lib
sqlite3-rubyをlibに追加
このままではRuby on RailsからSQLiteを利用できないから、SQLite3のRubyアダプタであるsqlite3-rubyもlibディレクトリに追加するよ。
本当はsqlite3-rubyのソースコードを入手してコンパイルする必要があるんだけど、面倒だったからここではすでに他のLinuxマシンでセットアップ済み(コンパイル済み)のsqlite3-rubyをそのまま流用したよ。
まずは、sqlite3-rubyがすでに導入されているLinuxマシン上で、ライブラリをアーカイブするよ。ここでは/opt/rubygems/gems/sqlite3-ruby-1.2.1以下にsqlite3-rubyがセットアップされているものとするよ。
$ cd /opt/rubygems/gems/sqlite3-ruby-1.2.1 $ tar cvf /tmp/sqlite3-ruby.tar lib $ cd /tmp $ gzip sqlite3-ruby.tar
上記で作成したsqlite3-ruby.tar.gzを、scpコマンドで開発用サーバへ転送するよ。
$ scp -P [sshポート番号] sqlite3-ruby.tar.gz [ログインID]@[レンタルサーバのホスト名]:/home/[ログインID]/redmine-0.5.1/
開発用サーバ側では、redmine-0.5.1のディレクトリ上でそのまま展開すればOKだよ。
% tar xvzf sqlite3-ruby.tar.gz
RedClothをlibに追加
redMine上でTextile記法を利用可能にするため、RedClothを導入するよ。こちらも面倒だったので、今回はRedClothをすでに導入済みのLinuxマシンから直接コピーしちゃったよ。
ここではローカルのLinuxマシンの/usr/lib/ruby/1.8/redcloth.rbを開発用サーバにコピーしたよ。
$ cd /usr/lib/ruby/1.8/ $ scp -P [sshポート番号] redcloth.rb [ログインID]@[レンタルサーバのホスト名]:/home/[ログインID]/redmine-0.5.1/lib/
config/database.ymlの作成
config/database.ymlを作成するよ。
% vi config/database.yml
次のような内容にするよ(このファイルも実は他のSQLite3を使ったRailsアプリのものから流用したものだよ)。
# SQLite version 3.x # gem install sqlite3-ruby development: adapter: sqlite3 database: db/development.sqlite3 timeout: 5000 # Warning: The database defined as 'test' will be erased and # re-generated from your development database when you run 'rake'. # Do not set this db to the same as development or production. test: adapter: sqlite3 database: db/test.sqlite3 timeout: 5000 production: adapter: sqlite3 database: db/production.sqlite3 timeout: 5000
初期データベースの作成
次のコマンドで、初期データベースの作成と初期データのインポートを行うよ。
% rake db:migrate RAILS_ENV="production" % rake load_default_data RAILS_ENV="production"
「Select language」には「ja」を回答してね。
SMTP サーバの設定
redMineでユーザ登録やバグ登録などのイベントが発生した場合に連絡するメールを送信するためのメールサーバを指定するよ。
% vi config/environment.rb
config.action_mailer.smtp_settingsのあたりを、送信可能なメールサーバに指定するよ(実はまだここはきちんと設定していないので、あとで設定したいと思うよ)。
ちなみに、メールの送信機能を使わない場合は、次のように
config.action_mailer.perform_deliveries = true
となっているところを
config.action_mailer.perform_deliveries = false
のように変更すれば、redMineのメール通知機能を無効にできるよ。
config/routes.rbの編集
config/routes.rbを編集するよ。
% vi config/routes.rb
ファイルの一行目(「ActionController::Routing::Routes.draw do |map|」の上あたり)に、次の内容を追加するよ。
ActionController::AbstractRequest.relative_url_root = '/redmine' ActionController::Routing::Routes.draw do |map| ...
シンボリックリンクの作成
publicディレクトリにシンボリックリンクを作成するよ。
% cd public % ln -s . redmine % cd ..
サーバの起動
% ruby script/server -e production -p 4000 &
今回のAwarad on Railsのレンタルサーバでは複数のユーザーで共用で利用しているから、もしも4000番ポートを他のユーザーが利用している場合は変更する必要があるよ。その場合、あとで説明するDeleGateの設定も同様に変更する必要があるよ。
現在使用中のポート番号を調べるには、netstatコマンドを利用するよ。
% netstat -na
DeleGateの起動
DeleGateについては別のドキュメントにまとめたから、そちらを参照してね。
redMineへのアクセスと日本語化
Webブラウザで http://[レンタルサーバのホスト名]:[Railsアプリ公開用指定ポート]/redmine/ を開くとredMineにアクセスできるよ。
インストール直後はユーザー名:admin、パスワード:adminで管理者としてログインできるよ。ログインしたら「MyAccount」→「Language」→「Japanese 日本語 」で表示を日本語化できるよ。
参考
■ [AoR2007] Drecom Award on Rails 2007のレンタルサーバにDeleGateをセットアップ

Drecom Award on Rails 2007のレンタルサーバでは、公開用のWeb用のポートはひとつしか使えないよ。
そこで先ほどセットアップしたredMineと開発中のRailsアプリを共存させるため、DeleGateというソフトを導入したから、導入方法をメモとして残しておくよ。
開発用サーバへのログイン
$ ssh -p [sshポート番号] [レンタルサーバのホスト名] -l [ログインID]
ダウンロード
DeleGateのダウンロードサイトを見て、最新版をダウンロードするよ。ここでは、バージョン9.6.2をダウンロードしたよ。mkdirコマンドでdelegateという名前のディレクトリを作って、cdコマンドで移動したあとにwgetコマンドでダウンロードするよ。
% mkdir delegate % cd delegate % wget http://www.delegate.org/anonftp/DeleGate/bin/linux/9.6.2/linux-dg.gz
ダウンロードしたファイルは圧縮されているから、gunzipコマンドで展開したあとにchmodコマンドで実行許可属性を与えるよ。
% gunzip linux-dg.gz % chmod 755 linux-dg
delegate.cfgの作成
設定ファイルとして、delegate.cfgファイルを作成するよ。
% vi delegate.cfg
以下のような内容にするよ。
-P[Railsアプリ公開用指定ポート] SERVER=http MOUNT="/* http://localhost:3000/*" REACHABLE=localhost MOUNT="/redmine/* http://localhost:4000/redmine/*" REACHABLE=localhost RELIABLE="*" ADMIN=webmaster@example.net
これは、次のような設定内容になるよ。
- Delegateの待ち受けポートは[Railsアプリ公開用指定ポート]とする
- redMineは4000番ポートで起動することとして、http://[レンタルサーバのホスト名]:[Railsアプリ公開用指定ポート]/redmine/にアクセスが来ると4000番ポートに転送する
- (/redmine/以下を除く)通常のhttp://[レンタルサーバのホスト名]:[Railsアプリ公開用指定ポート]/以下へのアクセスは、3000番ポートに転送する
今回のAwarad on Railsのレンタルサーバでは複数のユーザーで共用で利用しているから、もしも3000番ポートや4000番ポートを他のユーザーが利用している場合は変更する必要があるよ。
現在使用中のポート番号を調べるには、netstatコマンドを利用するよ。
% netstat -na
DeleGateの起動
% ./linux-dg +=delegate.cfg
以上でDeleGateの設定は完了だよ。