« 2008年09月 | メイン | 2008年11月 »

2008年10月 アーカイブ

2008年10月25日

Blosxom環境構築(1/2)

先月、このweblogが動く自宅サーバーへのアクセス手段でお世話になってる、無料のDDNSサービス、ieServer.Netが不調で、しばしば外からここにアクセスできなくなっていた。
当初から大変ありがたく使わせてもらっているが、無料のサービスなので十分な設備で運営されるとは限らないし、いつサービス終了となるかもわからない。大してアクセス数がある訳でも無いが、せっかくネチネチと綴ってきた現役のweblogなので、まだ消滅させるには惜しい。そこで、予備のweblog環境を検討することにした。

このサーバーのblogは、MovableTypeを使って記事を静的なHTMLに変換して作っており、一度HTMLに変換すれば、WebサーバーにMovableTypeが無くても閲覧可能である(但しコメント/トラックバックの受信やコンテンツ内検索等はできない)。従って、MovableTypeを使って作成した静的なHTMLをプロバイダーが提供するWebサーバーにアップロードするだけで、公開はできる。
…と考えて作業を始めると、1つのMovableType環境で複数のURL向けに静的なHTMLを出力するのは容易でないことがわかった。MovableTypeの設定ファイルを2つ用意して手で切り替えるか、データベース内に全データを丸ごと2つ持たないといけないのだ。あまりにもすっきりしないし、不便である。

そこで、プロバイダーのWebサーバー側にブログシステムを構築することを考えた。
世の中にはMovableType以外にNucleus、tDiary、華式、blosxom等様々なブログツールや日記ツールがあるが、私が使用しているプロバイダーであるHi-HoのレンタルWebサーバーは持ち込みのプログラムを動かす制約が厳しく、ほとんど素のPerlのCGIしか動かせない。従って、多数のPerlモジュールを必要とするMovableTypeも、PHPで動く華式も、SQLデータベースを必要とするNucleusも動かない。
そんな中、blosxomは動いた。

実はこのblogを始める以前に、Kyo Nagashimaさんのblosxom starter kit(以下bsk)を使ってHi-Ho上でblosxomを動かして、少しだけblogしていた。そのbskをインストールした4年前、Hi-Hoのサーバー上で動かせたフリーウェアのブログ/日記ツールはblosxomだけだったが、現在やはり動かせるのはblosxomだけのようである。

Blosxomの公式サイトのページは更新が止まっており、そのサイトにあるblosxom本体も5年前からバージョンアップされていない。ユーザーも減っているようで、ユーザー自身が「なぜ今更blosxomを使っているかというと…」と自嘲気味に言い訳しているのを見かける。ユーザーがいなければノウハウを公開する人もいない。もうblosxomを使うのは厳しいか…と思いかけた所で、"The Unofficial Blosxom User Group"というサイトを見つけた。どうやら今年に入っても有志によってバージョンアップされ、プラグインも追加されていってるようだ。
そして、日本でもInfoseekの無料Webレンタルサーバーでblosxomしている人がいた。InfoseekでもHi-Hoでも動くのなら、レンタルウェブサーバー間のポータビリティは十分期待できる。一旦システムを構築したら、無料のレンタルサービスででもその環境を入れれば全く同じブログを使い続けられるのだ。エコロジーだ。

ひと安心してblosxomをバージョンアップしようとすると、以前にインストールしたblosxomが動かなくなっていた。Perlスクリプトの途中でエラーになってたようで、サーバーのPerlの仕様が変わったのか?とげんなりしたが、仕方なく解析すると、spamを受けまくってwriteback(コメント、トラックバック)ファイルが巨大になってたのが原因だと判明した。インストールしていたのはbsk 1.02そのままの環境で、当時spamは全く無かったので、spam対策はしていなかった。しかも、パスワードを設定していたはずなのだが、有効にしていたwikiedish(ブラウザ上でエントリーを編集するためのプラグイン)を使って、全てのエントリーがspamによって書き換えられていた。
辛うじてbsk 1.02を初期状態に戻して動かすことはできたが、blosxom本体だけをバージョンアップする方法と、spam対策されたWritebackPlusを組み込む方法がわからなかったので、bskを参考にして1からblosxom環境を構築することにした。

続きを読む "Blosxom環境構築(1/2)" »

2008年10月26日

Blosxom環境構築(2/2)

今回このblogのBlosxom版を構築するために行ったことをまとめる。

●Blosxom本体
SourceForge.netのBlosxom projectから最新版を入手した。
なお、同ページは"The Unofficial Blosxom User Group"では"SF.net Project"と書かれてリンクされている。

●プラグイン
Blosxomは本体が小規模に作られているので、欲しい機能のプラグインを入れる所から始まる。
今回はblosxom starter kit(bsk)とBlosxom Plugin Registryを参考にプラグインを選び、"The Unofficial Blosxom User Group"のV2 Plugin Registoryから最新版を取得していった。
以下、インストールしたプラグイン名と、インストールに伴って改造した点を記す。
・archives
月毎のアーカイブページと、それらへの階層状のリンクを生成する。
特に改造無し。
・back_and_forth
個別エントリーのページから、更新日付が1つ前のページ、1つ後のページへのリンクを生成するプラグイン。
bskの"«前 | Main | 後»"という並びが気に入ったので、bskのを使わせてもらった。(V2 Plugin RegistoryのはMainの部分が出せない)
・categories
カテゴリー毎のアーカイブページと、それらへの階層状のリンクを生成するプラグイン。
ディレクトリ名と表示文字列の対応($friendly_name)を埋めたのと、'all entries'を'全てのエントリー'に書き換えたのみ。
※report_dir_start呼び出しがコメントアウトされてるバージョンだと、'all entries'を表示するにはコメントアウトを解除する必要あり。
・entries_index
エントリーの作成日時を保存する。これが無いとエントリーの作成日時がエントリーファイルの更新日時になるので、FTPでwebサーバーにアップロードするとファイルの日時がアップロード時刻になり、エントリーの作成日時が失われてしまう。
特に改造無し。(インデックスファイルは別途作成して一緒にアップロードした)
・entry_title
個別エントリーページのタイトル(<TITLE>タグの中身)をそのエントリーのタイトルにする。
"ブログ名 セパレータ タイトル"という並びが気に入ったので、Kyo Nagashimaさんのバージョンを使用。特に改造無し。
・find
ブログ内をテキスト検索して、マッチするエントリーだけを出力するプラグイン。
特に改造無し。
・geek
(出力例)。いらないけど消すには惜しいので残しておく。
・seemore
複数エントリーが表示されるページで、各エントリーを丸ごと表示するのでなく、部分的に表示して、残りの部分へのリンクを付けるようにする。
"See more ...."を「続きを読む」に変えかけたが、"See more ...."が格好よくて気に入ったので、改造無し。
・titles_index
複数エントリーが表示されるページで、各エントリーをタイトルのみで表示するようにする。
seemoreで表示するトップページ以外では表示エントリー数の制限を緩和するため、blosxom本体のgenerate{}の"# Stories"の所の

my $ne = $num_entries;
my $ne = $currentdir ? 100 : $num_entries;
に変更。
・writeback
後述。

●Writebackスパム対策
Blosxom公式サイトのWritebackプラグインを使うと、スパムの餌食になる。対策として、以下の5つのプラグインを見つけた。
(1) WritebackPlus
(2) Feedback
(3) spam_blocker
(4) hail2u.netのWriteback
(5) Writeback with Akismet
まずデファクトスタンダードと思われる(1)のWritebackPlusを試そうとしたが、その中で使われているMT-blacklistが既に配布されておらず(MovableType 3.2で他の方法が使われるようになったため)、スパム対策にならなかった。
ネット上で流し読みする限り(2)はマイナーで、(3)と(5)は導入が面倒くさそうで、(4)の方法で十分効果がありそうなので、今回はWritebackPlusに(4)の方法を適用することにした。
WritebackPlusの改造結果
(WritebackPlusはVersion 0.2.1aを使用)
改造点(コメントで"Y.Nomura"とある部分)
・250行目付近の$pathを修正
・257行目付近、(4)のWritebackの100~131行目をコピー
・305行目付近、blacklist無しでも動くようにコメントアウト
・375行目付近、Net::SMTP無しでも動くようにコメントアウト(Hi-Hoのサーバーに無かったため)

●MovableTypeのエントリーのインポート
MovableTypeの管理ページの「エントリーの書き出し」を使って全エントリーを1つのテキストファイルに出力し、Perlスクリプトをガリガリ書いてBlosxom用のファイルに変換した。

●Hi-Ho依存の設定
参考までに、Hi-HoのレンタルWebサーバーでBlosxomを動かすために設定した、blosxom.cgi内の設定項目の一部を挙げておく。(一部伏字)
$dataurlは、テンプレートHTML(フレーバー)内からの他ファイル(スタイルシートや画像)参照で必要になる絶対パス。フレーバー内の相対パスは特殊なCGIディレクトリからの相対パスになり、データディレクトリに辿り着けない。

# Where are this blog's entries kept?
$basedir = "$ENV{'HOME'}/html/*************";
$datadir = "$basedir/entries";

# What's my preferred base URL for this blog (leave blank for automatic)?
$url = "http://www.sam.hi-ho.ne.jp/cgi-bin/user/ynomura/blosxom.cgi";
$dataurl = "http://www.sam.hi-ho.ne.jp/~ynomura/blosxom";

# Where are my plugins kept?
$plugin_dir = "$basedir/plugins";


続きを読む "Blosxom環境構築(2/2)" »

About 2008年10月

2008年10月にブログ「Weblog on mebius.tokaichiba.jp」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2008年09月です。

次のアーカイブは2008年11月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35