トップ «前の日記(2008-12-31 (水)) 最新 次の日記(2009-02-04 (水))» 編集

2009-01-02 (金) [長年日記]

[tDiary] index.rbのfcgi化

あけましておめでとうございます。

最近、ここの日記動作が重くないかなとか感じていたので、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


トップ «前の日記(2008-12-31 (水)) 最新 次の日記(2009-02-04 (水))» 編集