lisonalでrvmのruby1.9.2でrails3.0.xを動かす 2011/8現在
lisonalは月額98円でsshログインまでもらえる素敵なレンタルサーバーです。
ログインしてemacsでコードを編集、なんてできてしまいます。おすすめ。
webサーバーのレスポンスはけっこう遅いとおもいます。
負荷テストなど非常識なことはできないのでどれくらいの速度なのかわかりませんが
私が割り当てられたサーバーは2コアxeonの2Gオーバーが乗っているのでCPUはそれなりだと思います。nginxのビルドなどやってみましたがcpuが遅いとは思いませんでした。
railsも動くしめちゃくちゃありがたいサービスなのですが
ruby1.8.x/rails2xなので今回はrvm/ruby1.9/rails3が動くのかやってみました。
ユーザー権限でrails動くのでしょうか。普通に動きました。
$HOME/binと$HOME/localを作る
mkdir ~/bin mkdir ~/local
ここにインストールしていく予定
gitをインストール
gitがありません
mkdir ~/src cd src wget http://www.kernel.org/pub/software/scm/git/git-1.7.4.5.tar.gz tar zxvf git-1.7.4.5.tar.gz cd git-1.7.4.5 ./configure --prefix=$HOME make && make install
rvmをインストール
rvmをインストールする前に~/.gemrcを消すなりリネームしてどかしておきます。
rm -fr ~/.gemrc
rvmのインストールは
http://curiosity-drives.me/programming/rails/rvm_ruby_rails/
に従って行いました。rvmやらrubyやらrailsやらをインストールしました。
rails newする
作成が成功しました。
bundle installするとsqlite3のビルドでこける。
lisonalのrails2系はgem list -lするとsqlite3-ruby 1.2.5だったので
Gemfileをsqlite3から'sqlite3-ruby'','1.2.5'に変更
sqlite3と中身はおんなじですね。
bundle installが通りました。
今回はmymoveという名前のアプリを作りました。
静的ファイルの配信が遅い
それなりにうごきましたがとても遅い。
cssファイルのダウンロードに4secとかかかる時がある。引っかかる感じ。
静的ファイルはApacheで配信することにする。
rails由来の静的ファイルディレクトリのリンクがユーザーホームに並ぶのは
ちょっといやだったのでln -s で{RAILS_ROOT}/publicを~/www/rails_static/以下に
つなげることにした。
{RAILS_ROOT}/config/environments/production.rbに
config.action_controller.asset_host = "http://modeverv.a.lisonal.com/mymove"
してリンクを良い感じに書き換えてもらいます。
.htaccessは以下のようになりました
RewriteRule ^(mymove.+)\.(css) rails3_static/$1.$2 [L] RewriteRule ^(mymove.+)\.(js) rails3_static/$1.$2 [L] RewriteRule ^(mymove.+)\.(jpg) rails3_static/$1.$2 [L] RewriteRule ^(mymove.+)\.(jpeg) rails3_static/$1.$2 [L] RewriteRule ^(mymove.+)\.(png) rails3_static/$1.$2 [L] RewriteRule ^(mymove.+)\.(gif) rails3_static/$1.$2 [L] RewriteRule ^(mymove.+)\.(swf) rails3_static/$1.$2 [L] RewriteRule ^mymove "http\:\/\/127\.0\.0\.1\:サーバーthinのリッスンポート%{REQUEST_URI}" [L,P,QSA]
リロードしまくってみても配信が安定している。安定して”おそいサーバー”になりました。
静的ファイルにnginxをビルドして試してみましたがたいして変わらない感じだったのでApacheでよいかなとおもいます
そもそもApacheのRewriteRule=>nginxなのでApacheのラグはキャンセルできません。
capするとしあわせになります。