memo:fileQでcgiのsinatra

railsはメンドイ。rails使うぐらいなら速いしphp使ったほうがいいとおもう。
でもcakeも大概設定メンドイ。という時はsinatraかもしれませんね、
という射程範囲です。(つーか隣の人がsinatraでなんかつくっててsinatra気になった。)
で、貧乏人は月額100円でmysql+mail+ドメインのサービス+ruby(rails)とかphpとかperlとか
可能なfileQはすごく幸せ。cronもあります。ssl証明書もあります。sshログイン可能です。emacsとか唱えられます。.htaceess可能です。javaは使えない。
なんだか安すぎて潰れるのがしんぱい。実験場として最高だと思うのです。
初めての有料ホスティングだー。わーい。で、sinatraをcgiで動かしてみる。

管理

すごくご機嫌なcPanelっていうインターフェースがあります。
たいがいの事はここでできます。日本語訳してあるけどドン引きのわかりにくさなので
英語モードにしよう。

fileQのrubyのパス

#!/usr/bin/ruby

cgiの動作仕様

どこでもOK。
拡張子cgiじゃなくて拡張子rbで動かしたいならcPanelからaddhandlerを追加。
もちろんchmod 755で実行可能に

gemでsinatraインストール

cPanelから

cgi確認

#!/usr/bin/ruby
puts "Content-type: text/html\n\n";
puts "Hello, World.";

sinatraいれてみる

gemコマンドはcPanelから
でもちょっと癖があってgemsを読まない
fileQでは~/ruby/gemsにgemのインストール先があるらしい。
ttp://あなたのサーバーのindex.cgiまでのパス/index.cgi
でアクセス可能なようにしていきたい。
スクリプトの中で気合でライブラリを読み込み可能なように設定する。

File Edit Options Buffers Tools Help
#!/usr/bin/ruby

ENV['GEM_HOME'] = '/home/アカウント名/ruby/gems'

require "rubygems"
require "sinatra"

set :run, false
set :environment, :cgi

get '' do
"sinatra cgi root"
end

get '/' do
"sinatra cgi slash"
end

get '/hello' do
"sinatra cgi hello"
end

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

.htaccessでindex.cgiとか書かなくてもアクセス出来るようにしたい。

sinatraは~/www/cgi-bin/sinatratest/index.cgiにいます。

RewriteEngine on
RewriteBase /cgi-bin/sinatratest
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.cgi/$1 [L,QSA]

cgiでrubysinatraの速度とかわかんない。
そもそもここまで安いfileQでレスポンス速度とか求めるのはなんかちがう気がする。

で、sinatraは使ったことありません。暇なときに今後触っていくのだと思います。
暇は出来そうにありません。したがってコレにて完の悪寒。企画書かかねば。仕事しろ俺。
以上です。