読者です 読者をやめる 読者になる 読者になる

一分一秒真剣勝負!

Ruby, Railsなど。Web系の技術ネタを充実させたい・・が、そうなるかは分からない。

SinatraをさくらインターネットでCGIスクリプトとして動かす

ruby sinatra memo

 ちょっと出遅れ感がするけど、Sinatraいい!
http://www.sinatrarb.com/:image:large

require 'rubygems'
require 'sinatra'
get '/' do
  "Hello World!"
end

 トップページのこのコードを見て触りたくなった!軽量フレームワークと言うだけあって、シンプル過ぎる!これはイケメンフレームワークですね。

インストール

$ gem install sinatra

 これだけ!Rackも必要ですが、Sinatraをインストールすれば同時に入ってくれます。

動作確認

 以下の内容でtest.rbを作成。

require 'rubygems'
require 'sinatra'
get '/' do
  "Hello World!"
end
$ ruby test.rb

 これでウェブサーバが立ち上がるので、localhost:4567にアクセスすると結果を確認できます。このままコードを編集すれば即座に変更内容が反映される。素敵。

サンプルコード(さくらインターネット用)

 なんだか使えそうだぞ、となってくるとCGIスクリプトとして動かしたくなる。僕はさくらインターネットのスタンダードプランでサーバを借りているので、ググった結果を参考に以下のスクリプトで動作確認しました。

#!/home/YOUR_ID/local/ruby/bin/ruby 
# ↑Rubyをローカルに入れているのでこんなパスになってる

$LOAD_PATH.unshift '/home/YOUR_ID/local/ruby/lib'
ENV['GEM_HOME'] = '/home/YOUR_ID/local/lib/ruby/gem'

require 'rubygems'
require 'sinatra'

set :run, false # HTTPサーバを立ち上げないならfalse
set :environment, :cgi

get '/' do
 'hello!!'
end

Rack::Handler::CGI.run Sinatra::Application

 これだとスクリプト名がURLに含まれてしまうのだけど、今のところこれでいいかと思っている。これが気に食わないのなら.htaccessを編集すればどうとでもなります。
 よし、ドキュメントを読んでみるか。