さくらのレンタルサーバでRuby on Rails 3.2.17動か…した気分に浸る

最初に言っておくと、実用性皆無です。
たとえ趣味でちょっとだけ試すにしても、常用するならおとなしくVPS契約するかHeroku等使いましょう

○できること
・さくらのレンタルサーバ(スタンダード)上でRuby on Railsが「一応動作してるっぽく見せられる」
(いや、実際動作はするんだけど使い物にならないってだけ)

○制限
サーバはWEBrick(開発用)
ポートは9800(WebDAV)
セキュリティとか負荷とか無考慮、たぶんWEBrick立ち上げっぱなしだと怒られる(なので満足したら即終了)

(このへんからなげやり)

参考サイト

http://tmpz84.blogspot.jp/2011/07/rails-3.html
http://blog.tmtr.jp/2013/04/nodejs.html
http://server-domain.info/news/sakura-tcp-port-restrict.html

手順
まず前提としてCygwin入れてsshで接続できてるとする。
あるいはLinux/MacOS環境でも可。

一番上の参考サイトを見つつrubyを入れる。どうせ実験なので最新の2.1.1入れた。
rails newしたいのでrails 3系の最新を入れる(gem install rails '>~ 3')
「rails new アプリ名 --skip-bundle」でアプリ作る

二番目の参考サイトを見つつnode.jsを入れる。
理由はさくら鯖のFreeBSDではRailsで主流のtherubyracer+libv8がうまく入らないから。
(もっとも、node.jsも相当強引だけど)
終わったら「cd アプリ名」してから「bundle install --path vendor/bundle」

ここで、Rails 2.2まで?だったら.htaccessの設定やってCGI呼び出しできるようにすれば普通にポート80のApacheで動いたらしいけど、2.3~はアプリケーションサーバで動くようになってダメらしい。
常用は無理でもとりあえず一瞬だけでもいいのでブラウザから見たい(SSHのポートフォワードとかせずに)ので、WEBrick使っちゃう。
ただ、さくら鯖もセキュリティ強化の波でポート閉じちゃって、今空いてるのが三番目の参考サイトにある僅かのみ。
しかも1025以降の自由に使える?ポートで空いてるのが9800のWebDAVと9802のWebDAV SSLのみ。
なので9800を使う。デフォルトではWebDAVは動いてないのでバッティングしない。

「bundle exec rails s --port=9800」してから「http://さくら鯖のホスト名:9800/」すれば無事Railsデフォルトのindex.htmlが出る。
物足りなければ適当にscaffoldして遊ぶ。飽きたらCtrl+CでWEBrick終了させておしまい。


実は今回は単純に遊んだだけじゃなくって、あわよくば本気で動かせたらなぁと思ってたんだけど、やっぱり無理っぽいね。
もうちょっと本格的に遊ぶ(?)んだったら、Herokuの無料プランがよさそうかも。VPSはちょっと高い(最安プランで年11,088円、スタンダード共有サーバ(5,142円)のほぼ2倍)のでおもちゃにするにはもったいないし。