monolithic kernel

Ubuntu+Apache+Rack+FastCGIな環境でSinatraを使う

Sinatraはあっさり動いてくれました。以下手順のメモです。

sudo gem install sinatra

ファイルの記述

前回テストしたrack-testディレクトリ以下に次の3つのファイルを配置します。

ファイルやディレクトリが存在しない場合にはリクエストをすべてdispatch.fcgiへ投げるようにします。

.htaccess
RewriteEngine On
RewriteBase /DirectoryIndex dispatch.fcgi
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]

ここにはアプリケーション本体のコードを記述します。

start.rb
require 'rubygems'
require 'sinatra'

get '/' do
  'Hello, World!'
end

start.rbを読み込んでFastCGIとして起動させているだけのコードです。

dispatch.fcgi
#!/usr/bin/env ruby
require 'rubygems'
require 'rack'
require 'sinatra'

Rack::Handler::FastCGI.run Sinatra::Application

テスト

このコードを動かしてみると、うちではなぜか出力が以下のようになってしまいます。

He

ある程度出力が長ければ(30文字程度)途切れずに表示されるので実害はないのですが、よく分からない感じです。