トップ 最新

ただのにっき

2001-08-09(木) 10600歩 [長年日記]

CodeRedカウンタの作り方

以下のようなdefault.idaというファイルを作り、ApacheのDocumentRootに置きます。実行可能属性を付けて、さらに場合によってはApacheの設定(か.htaccess)をいじって、サフィックス.idaのファイルがCGIとして実行できるようにします。

#!/usr/bin/env ruby
File::open( './counter', 'r+' ) do |f|
   count = f.read.to_i + 1
   f.pos = 0
   f.write count.to_s
end
require 'cgi'
cgi = CGI::new
print cgi.header( 'type' => 'text/plain' )
print "You are #{count}th visitor. Welcome:-(\n"

 続いてApacheのログから既存のアクセス数を数えあげて、counterファイルを作ります。httpdから書き込めるようにするのを忘れずに。

# grep default.ida /etc/httpd/logs/access* | wc -l | sed 's/ //g' > counter
# chown nobody:nobody counter

 あとはこのファイルを、tDiaryのヘッダに<%=insert 〜%>を使って埋め込むだけ。

 でも、DocumentRootにCGIを置く危険性をよく理解した上で行って下さいね:-)

tDiary

1.1.1からカレンダーが消えたのは@header@footerの好きなところに埋め込めるようにしたからです。付属のtdiary.conf.sampleにはそのあたりのことが書いてあるので一度ざっと読んでみて下さい。1.1.2は1.1.1よりドキュメントもそこそこ充実してますので。

NTさんの実験的「実験的日記」を捕獲しました:-) またもや転向組ですなぁ。

さらに骨折飲料さんの暫定日記も捕獲。index.rbをつけないといけないようになっているのは、DirectoryIndexを設定できない環境なのでしょう。

実はtDiaryオフィシャルの方にはもっとた〜くさんのRefererがあって(こないだeRuby化してからちょっと採取してみた)、そのいくつかは運用中の日記なのだが、まぁ、こっそりやっている人も多いようなのでわざわざ捕獲はしていないのだ。その覚悟があるならここにリンクするだろうし、ということで(笑)。つーか、そろそろ全部把握するのは困難になってきたな。いいことだけど。