あけましておめでとうございます。
最近、ここの日記動作が重くないかなとか感じていたので、fcgi化してみました。
割と簡単に行けましたが、一応覚え書きを残すことにしました。
最初に必要なパッケージのインストールから。
環境がetchなので、apt-get installでlibapache2-mod-fcgid、libfcgi-ruby1.8をインストール。
次はドキュメントルートに置くindex.fcgiを以下のように準備します。私の環境はtdiaryを複数ユーザで使う手法をやっていたので、すでにfcgi化した方のコードを参考に以下のようにしました。
#!/usr/bin/ruby
DIR = '/usr/local/share/tdiary'
$LOAD_PATH.unshift DIR
require 'fcgi'
FCGI.each_cgi do |cgi|
begin
ENV.clear
ENV.update(cgi.env_table)
class << CGI; self; end.class_eval do
define_method(:new) { cgi }
end
load File.join(DIR, 'index.rb')
ensure
class << CGI
remove_method :new
end
end
end
最後は、.htaccessやapacheのconfでDirectoryIndexでindex.fcgi、RewriteRuleでindex.fcgiを使うようにすればokです。
今のところ、かなりレスポンスがあがって満足しています。後はしばらくして影響がないことを祈りたいと思いますw