dreamedge.net

さくらのレンタルサーバにmephistoをインストールする

2008-03-28T14:31:00+0000

オフィシャルのインストール方法はなぜか2か所に書かれています.ひとつめふたつめ 片方にだけ書かれている情報があったりして結構面倒でした.

以下,自分がやった時の手順.いろいろとバージョン依存な部分もあると思われるので,使用したバージョンそのままにコマンドは残しておきます.

1. 依存するgemのインストール

まず,rake0.7.3とrails1.2.6をイン―ストール.現時点のmephisto安定版である0.7.3はrake0.8系だとrake db:bootstrapした時にエラー吐いて落ちるので注意.結構ハマりました.これに関する記述はオフィシャルにはみつからなくて,googleグループのmephistoの所での記述を見て解決できた.これもまたハマりポイントです.

$ gem18 install rake --version "0.7.3"
$ gem18 install rails --version "1.2.6" --include-dependencies
$ gem18 install tzinfo

2. sqlite3-rubyのセットアップ

さくらはスタンダード以上だとMySQLを用意していますが,データベースを1つしか使えないのでDevelopmentやTestも使いたい場合はsqlite3を使う必要があります.ちなみにsqlite3のライブラリやヘッダファイルはインストールされているので必要ない.

$ gem18 install sqlite3-ruby

コンパイルした拡張ライブラリを,なぜかルート権限でインストールしようとして途中で止まる.コンパイル自体はできているので,手動でファイルを移動すれば動くことは動く.でもgemspecが出来ていないので,gemがsqlite3-rubyを認識してくれない.ので,適当な環境でできているのをコピーすること.riやrdocについては,諦めてます.

$ cp ~/lib/gems/gems/sqlite3-ruby-1.2.1/ext/sqlite3_api/sqlite3_api.so ~/lib/gems/gems/sqlite3-ruby-1.2.1/lib/
$ cp ~/sqlite3-ruby-1.2.1.gemspec ~/lib/gems/specifications/

3. mephistoの設定

必要なパッケージが入ったので,mephistoを設置する作業に入ります.
解凍して,まずはdatabaseの設定を行う.

$tar xvzf mephisto-0.7.3.tar.gz
$mv mephisto-0.7.3 mephisto
$ln -s /home/username/mephisto /home/username/www/symlink
$cd mephisto
$cp config/database.sample.yml config/database.yml
$nano config/database.yml

sqlite3を使う場合は,以下のようにdatabase.ymlを書けばよい.

development:
  adapter: sqlite3
  database: db/development.sqlite3
test:
  adapter: sqlite3
  database: db/test.sqlite3
production:
  adapter: sqlite3
  database: db/production.sqlite3

そしたら,dbのセットアップおよび,実行環境の整備.

$ rake db:bootstrap RAILS_ENV=production
$ chmod -R o+w log tmp db
$ nano conf/environment.rb
$ nano public/.htaccess
$ nano public/dispatch.cgi

4. CGI実行環境の設定

さくらのレンタルサーバでは,fastcgiとか使えないのでCGIで動作させることになる.その為のenvironment.rb, .htaccess, dispatch.cgiの修正点は以下の通り.

environment.rb

+RAILS_ROOT = "/home/tiplog/mephisto"
+$LOAD_PATH.push("/home/tiplog/lib/ruby/site_ruby/1.8")
+$LOAD_PATH.push("/home/tiplog/lib/ruby")
+$LOAD_PATH.push("/home/tiplog/lib")
+ENV['GEM_HOME'] ||= '/home/tiplog/lib/ruby/gem'

.htaccess

nano public/.htaccess
+#AddHandler fastcgi-script .fcgi
+#AddHandler cgi-script .cgi
+#Options +FollowSymLinks +ExecCGI
+RewriteBase /symlink

dispatch.cgi

nano public/dispatch.cgi
-#!/opt/local/bin/ruby
+#!/usr/local/bin/ruby
+require "/home/username/lib/gems/gems/rails-1.2.6/lib/dispatcher"

他の注意点として,さくらではCGIは755でないと動かないみたいなので要注意.また,設置がドメイン直下でないので,css内の画像ファイル表記等は修正しないと見られません.使用しているテーマごとに対応部分の修正が必要.