ただのにっき
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化してからちょっと採取してみた)、そのいくつかは運用中の日記なのだが、まぁ、こっそりやっている人も多いようなのでわざわざ捕獲はしていないのだ。その覚悟があるならここにリンクするだろうし、ということで(笑)。つーか、そろそろ全部把握するのは困難になってきたな。いいことだけど。