2006-05-24 [長年日記]

_ [tDiary] 複数の日記アクセスを一つの FastCGI でさばく

一昨日の設定だと、日記アカウントの数だけ index.fcgi が動くので、メモリを食いすぎますし、これだとどんなに CPU が余力があってもこれ以上アカウントを増やすのは無理です。

そこで、複数の日記アクセスを一つの FastCGI でさばけないか考えてみたところ、意外に簡単にできました。 moriq さんの記事を参考に、こんな感じの index.fcgi を各日記のディレクトリに symlink で置きました(同じディレクトリにそれぞれの日記用の tdiary.conf や symlink の index.rb があります)。

#!/usr/bin/ruby
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
    if /\A(.+)\.tdiary.net\z/ =~ cgi.server_name
      dir = "/home/tdiary/users/#{$1}"
    else
      dir = File::dirname(__FILE__)
    end
    Dir.chdir(dir) do
      load 'index.rb'
    end
  ensure
    class << CGI
      remove_method :new
    end
  end
end

要するに、SERVER_NAME 環境変数をみて、その日記ユーザのディレクトリに chdir してから index.rb を読んでいるだけです。そのあたりの部分はもちろん環境にあわせて書き換えてください。

なお、「複数の日記アクセスを一つの FastCGI でさばける」とは言っても、同時に複数の日記アクセスが来たら、その数だけは fcgi スクリプトは走るみたいで、今はだいたい 5 個程度の fcgi スクリプトが起動しています。

_ [Hiki] 「HikiDoc の Perl による実装を行いました」

というメールをいただきました。 素晴らしい! → HikiDoc.pm 公開

元の Ruby 版 HikiDoc も、もうすこし(というかもっと)コードをいじりたいと思いながら、もう半年ちかくたってしまいましたが、変換する HTML を柔軟にカスタマイズできるようにするとか、いつかやりたいと思っています。。。

_ [Family] 端午の節句

花菖蒲と子供

子供の節句のお祝いに、ゆうなの両親からたくさんの花菖蒲が届きました。 どうもありがとうございます。

うちにはこれだけの花を入れられる花瓶はないので、コンランショップで買ったワインクーラーに入れてみました。 というか、実は花瓶は一つも持っていなくて、普段は形や色のきれいなワインの空瓶にさしています。

ちなみに、コーヒー豆の保存もワインの空瓶に入れて、空気をしゅぽしゅぽ抜いています。 あ、コーヒーの話もあとで書きます〜。

本日のツッコミ(全4件) [ツッコミを入れる]
_ コウザイ (2006-05-27 11:57)

 以前に「私は名もないコーヒーメーカー使ってます〜」とか言ってしまったのですが…実は、Vitantonioというちゃんとしたメーカーさんの物でした(^^;)気づくのが遅すぎました〜。

_ かずひこ (2006-05-28 01:35)

Vitantonio のデザインはけっこう好き。以前言ってた写真をあらためて見たけど、VSC-300 とかかな?

_ コウザイ (2006-05-28 23:21)

VSC-300みたいです〜。

_ かずひこ (2006-05-30 22:55)

VSC-300ってゴールドフィルター付きのだよね? ぜひ一度ペーパーフィルターと飲み比べして感想を聞かせて〜

[]