at posts/single.html

Ruby だけで tDiary を動かす(小ネタ)

tDiary 繋がりで小ネタ。 ローカルな環境で tDiary を動かしたいけど、 Apache などの Web サーバを動かすのが面倒な場合がある。 そんなときに、 Ruby (に付属のWEBrick)だけで tDiary を動かす方法を試してみた。 ちょっとしたプラグインの開発などに使えるかも。

index.rb, update.rb のリネーム

tDiary のファイルをダウンロードし、 index.rb と update.rb のファイル名を変更する。

$ mv index.rb index.cgi
$ mv update.rb update.cgi

tdiary.conf の修正

tdiary.conf をエディタで開いて、 @update の行を以下のように設定する。

@update = 'update.cgi'

@data_path の設定も忘れずに。

server.rb の作成

以下の内容で server.rb というファイルを作る。

#!/usr/bin/env ruby
require 'webrick'

config = {
  :DocumentRoot => '.',
  # :BindAddress => '127.0.0.1',
  :Port         => 3001,
}
server = WEBrick::HTTPServer.new(config)
server.mount('/index.cgi', WEBrick::HTTPServlet::CGIHandler, 'index.cgi')
server.mount('/update.cgi', WEBrick::HTTPServlet::CGIHandler, 'update.cgi')
trap('INT')  { server.shutdown }
trap('TERM') { server.shutdown }
server.start

サーバの起動

$ ruby server.rb

http://サーバ名:3001/ にアクセスすると、日記のトップページが表示される。

サーバの停止

CTRL + C でサーバが停止する。

注意

認証機能も無いし、ログも残らないし、運用では使えないので注意。 あくまでローカルな環境で動かすように。

まじめにWEBrickで動かしたい場合は、tDiaryletを使うのがいいかと。

関連する日記