というのはぐぐればいくらでも出てきそうな感じですが、それでもはまる僕はなんなんですかね。ということで設定とか。基本的にはSinatraをCGIでもThin等のアプリサーバでも使えるようにする書き方 - 思っているよりもずっとずっと人生は短い。と同じなんだけど、ちょこちょこ違うとかなんとか。まあ、自分用メモですね。
1.9系の文字コード関係がいまだによく分かっていないので、そろそろどうにかしないといけない。
dispatch.cgi
さくらに用意されているRubyじゃなくて、自分でインストールしたRubyなので、パスを直で書いてる。あとはLOAD_PATHとかGEM_HOMEとかを教えてあげないといけないっぽい。environmentはcgiにしておかないとダメ。Encoding.default_externalのところはインストールしてるRubyが1.9系だからなんかやってます。#!/home/syou6162/local/bin/ruby $LOAD_PATH.unshift '/home/syou6162/local/lib' ENV['GEM_HOME'] ||= '/home/syou6162/local/rubygems' Encoding.default_external = 'UTF-8' load 'start.rb' set :run => false, :environment => :cgi Rack::Handler::CGI.run Sinatra::Application
start.rb
上と大体同じ。1.9からはrequire 'rubygems'しなくてもいいっぽい。$LOAD_PATH.unshift '/home/syou6162/local/lib' ENV['GEM_HOME'] ||= '/home/syou6162/local/rubygems' # require 'rubygems' Encoding.default_external = 'UTF-8' require 'sinatra' require 'haml' require 'sass' get '/?' do haml :index end
.htaccess
このアプリを置いてるディレクトリが/home/syou6162/wwwとかだとして、.htaccessもそこに置いてるとしたらこんな感じで書く。RewriteBaseとかで色々やってて動かなかったけど、これでよかった。。。DirectoryIndex dispatch.cgi RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ dispatch.cgi/$1 [L]
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/02/26
- メディア: 単行本
- この商品を含むブログ (1件) を見る