Blog への道(1)

2004年6月2日(水) 21時57分 by level
B ?

えむもじら Blog 化計画

ということで、えむもじらを Blog 化するために少しづつ動き始めている。そもそも Blog の定義は何か? ということになるが、広い意味ではいわゆる日記サイトも Blog と呼ばれることもあるように思うが、一般には、各記事ごとにコメントやトラックバックが可能なことが必要条件なのではないだろうか。えむもじらが目指すのもそれだ。

現在のえむもじらの作成は、すべてのページをローカル環境で作成し、ftp でアップロードするというオーソドックスな形態で行っている。各ページは、HTML エディタで作成するもの(bug.html など)、ソースレベルで作成するもの(jp.html など)、そして、データファイルから Perl で生成するもの(このページや RSS など)である。コメントやトラックバックを可能にするには少なくともサーバサイドで処理を行わないことには話が始まらない。

あれこれ、思いをめぐらせていたが、現在の Biglobe のサービスでは、CGI を外部から起動できないという制限により、外部からのトラックバック機能は無理っぽいことが分った。その他いろいろ制限が多いので、思い切って XREA に広告無しのアカウントを取った。年間費用 2400 円だ。(そこまでやるなら、Movable Type とかを導入してはという突っ込みは無しね。趣味なので :-)

さて、サーバの目処は立ったが、なにせ私は CGI にしろ、SQL にせよ素人なので、この先 Blog への道のりは長い。とりあえず、以下の方針で、まずはコメント機能を目指して行こうと思う。

えむもじら Blog 化計画 ステップ 1

  • よくある Blog のように、記事単位でページを表示し、そこのフォームからコメントを投稿できるようにする。トラックバックはその先。
  • データベースは将来的には MySQL とかに移行したいが、当面は、現状のテキスト形式のデータファイルベースとする。
  • 記事単体のページは毎回生成する。それ以外のページ(現在のえむもじらにすでに存在しているページ)は事前に生成しておく。
  • コメントが投稿された場合は、サイト全体を再構築する。現在ページ全体の構築にかかる CPU 時間は 0.15u (Athlon XP 1500)あるのでまったく問題ないだろう。
  • 記事のデータは、従来どおりローカルで作成確認後、データファイルをアップロードする。現状のデータファイルのファイルサイズは合計で 800KB 程度であるが、分割も可能であるので、これも問題なし。

現在の仕組みを生かした上で、コメント機能を手っ取り早く実現するにはこのあたりが妥当なところだろう。

はじめの一歩

まずは、CGI の勉強からということで、部下から略奪してきた「『Perlで作るCGI入門』基礎編」とそのサンプルスクリプトを参考に、記事単体のページを生成させる CGI を書いてみる。既存のスクリプトを CGI 用に修正して、xhtml のテンプレートを作って、対応するコードを追加して、意外とあっさりとできてしまった。これをローカル環境で実行するために BJD の Web サーバ機能を動かして試してみると、ページは表示されるがなぜかスタイルシートが有効にならない。あれこれ二日ほど悩んだ結果、「代替スタイルシートを指定したページを、BJD を通して、Gecko 系ブラウザで見たときの不具合」という結論に至った。早めに IE とかで試してみればこんなに長くはかからなかったろうに...

当面予定はないが、いずれは、、、ということで、会社で「MySQL 徹底入門」という本を借りてきた。右も左も分らないという初心者は、この手の入門書をじっくり読んで試してみるというのが良いだろう。って、貸し出し期限があるのでじっくり読む暇はないか...

ToDo

  • ローカル環境に BJD の Web サーバ導入(5/30)
  • 記事単体ページの生成(5/31)
  • 記事リンクを単体ページへ変更
  • コメント投稿フォーム周りの作成
  • コメント取り込み機能の作成
  • データファイルの分割(管理容易化)
  • TOP ページに新着コメントの一覧
  • 従来環境と、新環境の分離
  • 環境分離:データファイルのパラメータ
  • 環境分離:テンプレートファイル
  • スタイルシートが無効になる問題?
  • サーバ上での CGI の基本動作チェック
  • サーバ上での動作確認
  • 効率的なファイルアップロード手段

コメント

コメントはありません。

トラックバック

トラックバックは検索対象外です。

この記事にリンクしているページ < >

  1. データがありません。