GNSをWWW環境で使うための方法を解説します。WWWサーバにCGIの形で導入し、WWW掲示板などのような要領でブラウザから日記を書き込み、そのまま公開することができます。

WWWサーバ環境は、*BSD・LinuxなどUNIX系のOSに、apacheを導入したものを想定しています。

  1. GNSの動作に必要なツールを導入する
  2. GNSを導入する
  3. GNSの基本設定をする
  4. GNSの環境テストをする
  5. パスワードを設定する
  6. 日記を書く
  7. 更新フォームの解説
  8. 更新通知メール

GNSの動作に必要なツールを導入する

UNIX環境でGNSを動作させるには、以下のツールが必要です。

Perl

Perlは、Perl言語で書かれたプログラムを動かすためのプログラムです。GNSは、その大部分をPerlで書いています。現在のUNIX環境では、すでにPerlがインストール済みであったり、個々のOSの専用パッケージとしてPerlが用意されていることが多いですが、もし必要であれば以下からインストールファイルをダウンロードし、コンパイル・インストールをしてください。

GNSは、バージョン5以上のPerlでの動作を想定しています。もし特定のバージョンのPerlでの動作による不具合を発見した場合は、当方までお知らせいただければ幸いです。

Perlではさまざまな追加モジュールをインストールして使うことができますが、GNSはPerlの追加モジュールの導入の必要はありません。

nkf

nkfは、日本語ファイルの文字コードを変換するツールです。お使いのOSにnkfのパッケージがあればそれを導入、なければ以下からインストールファイルをダウンロードし、コンパイル・インストールをしてください。

GNSは、nkf v2.0以降での動作を想定しています。もし特定のバージョンのnkfでの動作による不具合を発見した場合は、当方までお知らせいただければ幸いです。

テキストエディタ

日記マスタの作成や、GNSの動作設定を行うには、テキストエディタが必要です。GNSの設定ファイルはEUC-JP形式で書かれているので、vi・emacsなどの「EUC-JPの編集に対応したテキストエディタ」をご用意ください。

もちろん、手許のWindowsやMacなどのパソコンで編集して、ftpなどで転送しても構いません。

これらの他に、GNS配布パッケージには、再配布可能なjcode.plというツールを組み込んでいます。もし必要であれば、以下からより新しいバージョンのjcode.plをダウンロードし、置き換えてください。

GNSを導入する

GNSは、zip版とtgz版の2つの配布形態をとっています。GNS本体としては同じものですが、UNIX版のインストーラが入っているのはtgz版のみです。

ファイルを解凍する
GNSの解凍
▲GNSの解凍

GNSの配布パッケージとなっているファイルを、tar+gzipなどを使用して解凍してください。解凍先はどこでも構いませんが、ここでは「public_html/GNS」を解凍先とします。このフォルダを「GNSフォルダ」と呼びます。

解凍が終了すると、「public_html/GNS」の下に"gns400"などの名前のフォルダ("400"はバージョン番号です)が作成されます。これがGNSのプログラムや設定データが入っている部分です。同様に、このフォルダを「GNSプログラムフォルダ」と呼びます。

インストール設定を行う
# Set Mail Address and URL
my_mail="yourmail@example.net"
my_url="http://www.example.net/GNS/"

my_mail="aoi@example.ne.jp"
my_url="http://www.example.ne.jp/GNS/"

「install.sh」をエディタで開いて、右の部分をインストール先の状況に応じて書き換えます。

"my_mail"は、自分のメールアドレスです。

"my_url"は、「GNSフォルダ」をURLにしたものです。

インストールを実行する
[Welcome to GNS!]
-------------------------------------------------
Your Mail Address = [aoi@example.ne.jp]
Your Diary URL    = [http://www.example.ne.jp/GNS/]
perl              = [/usr/local/bin/perl]
nkf               = [/usr/local/bin/nkf]
mail              = [/usr/bin/mail]
-------------------------------------------------
Push [Enter] key to continue installing.

「install.sh」を実行すると、右のような表示が出て、一時停止します。

表示内容が正しいことを確認してから、[Enter]キーを押すと、各種フォルダやファイルの作成・コピーが行われます。

日記マスタ用のフォルダを確認する

インストールを行うと、日記マスタを収めるフォルダが準備されます。「GNSフォルダ」に、"d"という名前のフォルダが作成されたのを確認してください。このフォルダを「日記マスタフォルダ」と呼びます。

cssファイルをコピーする

GNSは、cssに対応したHTMLファイルを出力します。「[GNSプログラムフォルダ]/style」フォルダに、これらのHTMLに対応したcssファイルセットが収められています。これは「インストール」ではコピーが行われないので、好きなcssファイルを各自で「GNSフォルダ」にコピーして利用してください。

plain ほとんどスタイル指定のないcssファイルです。オリジナルのスタイルを作るときの雛形として使います。
simple デフォルトのスタイル指定が入ったcssファイルです。
GNSプログラムフォルダを保護する

日記を作成するには、GNSプログラムフォルダ内のページをブラウザからアクセスする必要があります。ここは、著者であるあなた以外のアクセスはできないようにしておくべきです。.htaccessによるBASIC認証などを使って、あなた以外のアクセスを封じるようにしてください。

GNSの基本設定をする

GNSプログラムフォルダには、初期設定となる設定データがすでに入っています。しかし、このままでは各種情報がまだ仮のものです。まず、基本設定を行う必要があります。

ここでは、最小限の変更についてのみ解説します。詳細は、「config.phによる設定」をご覧ください。

config.phファイルをテキストエディタで開く
config.phを開く
▲config.phを開く

"config.ph"というファイルが、GNSの基本設定を司るファイルです。テキストエディタで、このファイルを開いてください。

このファイルには多くの設定項目がありますが、ここで編集を行う必要があるのは、そのごく一部です。以下、順に編集項目を説明します。

公開URLベース名
# 公開URLベース名
$URLBASENAME = 'http://www.example.net/GNS/';

$URLBASENAME = 'http://www.example.ne.jp/GNS/';

日記を公開するときの、URLのディレクトリ名までの部分です。install.shで指定したものになっていることを確認してください。

この例では、公開URLのディレクトリ名を「http://www.example.ne.jp/GNS/」フォルダにします。この下に日記ページが置かれます。

ダイジェストファイル名
# ダイジェストファイル名
$DIGESTNAME = 'digestdiary.html';

$DIGESTNAME = 'index.html';

日記を公開するときの、ダイジェストページのURLのファイル名部分を編集します。この例では、ダイジェストページのURLを「index.html」とします。

「公開URLベース名」の例と組み合わせると、この日記のダイジェストページのURLは、「http://www.example.ne.jp/GNS/index.html」となります。

日記名
# 日記名
$DIARY_TITLE = 'GNSによる日記';

$DIARY_TITLE = 'だいだい だいありー';

日記の名前を編集します。この例では、「だいだい だいありー」という名前になります。

この項目は、出力される日記のすべてのページに埋め込まれます。

著者名
# 著者名
$DIARY_AUTHOR = 'yourname';

$DIARY_AUTHOR = 'あおい';

日記の著者名を編集します。この例では、「あおい」という名前になります。

この項目は、出力される日記のすべてのページに埋め込まれます。

著者メールアドレス
# 著者メールアドレス
$DIARY_EMAIL = 'yourmail@example.net';

$DIARY_EMAIL = 'aoi@example.ne.jp';

著者宛てのメールアドレスを編集します。この例では、「aoi@example.ne.jp」というアドレスになります。

この項目は、出力される日記のすべてのページに埋め込まれます。

日記の説明
# 日記の説明
$DIARY_DESCRIPTION = 'GNSで日常を綴っています。';

$DIARY_DESCRIPTION = 'あおいの日々の記録です。';

この日記の簡単な説明文を編集します。この例では、「あおいの日々の記録です。」という説明になります。

この項目は、「RSSファイル」に埋め込まれます。

著作権表記
# 著作権表記
$DIARY_COPYRIGHT = 'Copyright (C)2005 GORRY.';

$DIARY_COPYRIGHT = 'Copyright (C)2005 あおい.';

この日記の著作権表記を編集します。この例では、「Copyright (C)2005 あおい.」という著作権表記となります。

この項目は、「RSSファイル」に埋め込まれます。

更新通知メール
# 1で更新通知メールを発信する
$FLAG_POSTMAIL = 0;

$FLAG_POSTMAIL = 1;

更新通知メールを出す場合は、この項を編集します。WWWで日記マスタを更新すると、その内容をメールで発信します。更新履歴を保存(バックアップ)したり、別のサーバにある日記のミラー(複製)を自動更新するのに便利です。

送信先は、次の「$MAILTO」で指定します。

更新通知メールの発信先
# 更新通知メールの発信先メールアドレス(postmail.pl)
$MAILTO = 'yourmail@example.net';

$MAILTO = 'aoi@example.ne.jp';

更新通知メールを出す場合は、この項を編集します。前の「$FLAG_POSTMAIL」を1にすると、'aoi@example.ne.jp'に更新通知メールが発信されます。


以上で、編集は終了です。

GNSの環境チェックをする

GNSトップ画面
▲GNSトップ画面

以上が完了したら、いよいよブラウザからGNSを使用します。アクセス先は、「GNSプログラムフォルダのindex.html」です。上の例の場合は、「http://www.example.ne.jp/GNS/gns400/index.html」へアクセスしてください。右のような画面になります。

一番下の、[動作環境のチェック]をクリックしてください。


GNSチェック画面
▲GNSチェック画面

動作チェックが正しく終了した場合、右のような出力が得られます。何かエラーが発生した場合は、赤文字で表示されます。

パスワードを登録する

GNSパスワード登録画面
▲GNSパスワード登録画面

動作チェックが終了したら、「GNSプログラムフォルダのindex.html」ページから[パスワードの登録]をクリックして、パスワードを登録します。パスワードを登録しないと、日記を書くことはできません。

パスワード登録画面になったら、[PASSWORD][RETYPE PASSWORD]に同じパスワードを入れ、[OK]ボタンをクリックします。パスワードが同じでない場合は、受け付けられません。

すでにパスワードが登録されているときは、パスワードの登録を受け付けません。パスワードを再登録したいときは、ftpやシェルなどから「日記マスタフォルダのkeepディレクトリ」にある"upload.pass"を削除してください。

日記を書く

パスワードの登録が終了したら、GNSトップページへ戻り、[日記を書く]をクリックします。下のような画面が現れ、日記の書き込みができる状態になります。

GNS更新フォーム
▲GNS更新フォーム
日付を指定
▲日付を指定して[OK]ボタン

では、日記を実際に書いてみましょう。まず日付を指定します。日付に"2005", "05", "15"と入力し、読み書きセレクタを[読み出し]に設定し、[OK]ボタンをクリックしてください。

もしこの日の日記マスタがあれば表示されますが、なければ何も表示されません。

次に、日記マスタを入力します。ここでは、以下の文章を入力してみます。

@title いか〜
@category 料理

@s
夕飯にイカを買ってくる。さくさくとさばいて、身は刺身、ゲソはにら・キャベツ・豚バラと野菜炒め、ワタとえんぺら・身とゲソの残りで塩辛に。

@s
・・・したはずだったんだが、最後に刺身を盛って食卓へ・・・というところで床へ皿が落下・・・(汗)。
▲日記マスタの例

日記マスタの入力が終わったら、[test]ボタンをクリックします。これで、この日記マスタがどのように表示されるかを確認することができます。

日記マスタを入力
▲日記マスタを入力

これでよければ、読み書きセレクタを[書き込み]に設定し、[OK]ボタンをクリックしてください。日記マスタの書き込みと、日記ページの出力が行われます。

「Password Error.」という表示が出た場合は、パスワードの入力が正しくありません。ブラウザのBackボタンで戻り、正しいパスワードを[PASS:]に入力してから、再度[OK]ボタンをクリックしてください。

作成された日記は、[Digest表示]リンクをクリックすることで、すぐ見ることができます。確認してみてください。

作業中になんらかのエラーが発生した場合は、ブラウザ画面上にそれが表示されます。また、「[GNSプログラムフォルダ]/tmp/cgierr.log」にエラーログが記録されます。

更新フォームの解説

更新フォーム
▲更新フォーム

更新フォーム画面上には、ブロックで区切られたいくつかの操作子があります。順に解説します。

編集部

文書の編集を行う部分です。

入力フォーム

いちばん大きい入力枠が、日記の入力を行うエリアです。ここで、日記マスタや各種データとなる文書を編集します。

日付

年・月・日で数値を入力する枠が、日付を入力するエリアです。この日付の日記マスタや、各種データの読み出し・書き込みを行います。

(日記マスタでなく)各種データの読み書きを行うときは、ここには特殊な定数が入ります。このときは、[yesterday][tomorrow]ボタンは効きません。

yesterday

現在表示されている日付に対して「昨日」の日記マスタを表示します。

latest

「最後に日記を書いた日」の日記マスタを表示します。

tomorrow

現在表示されている日付に対して「明日」の日記マスタを表示します。

RESET

すべての操作子の状態を、初期値に戻します。

読み出し/書き込み

[OK]ボタンの動作を切り替えます。

[読み出し]のときに[OK]ボタンをクリックすると、指定日の日記マスタを読み出して表示します。

[書き込み]のときに[OK]ボタンをクリックすると、指定日の日記マスタ(または各種データ)を指定内容で更新します。

test

現在の日記マスタがどのように表示されるかをテスト表示します。

このボタンを押した直後は、まだ文書の更新は行われません。この状態でブラウザの画面を閉じると、現在編集中の文書は破棄されます。

(日記マスタでなく)各種データの編集をしているときは、このボタンは何も行いません。

OK

文書の読み出し、または書き込みを実行します。どちらを行うかは、「読み出し/書き込み」セレクタの内容に従います。

一覧も更新

このチェックをONにして日記マスタの書き込みを実行すると、インデックスページの更新も同時に行います。

インデックスページの更新の分だけ、CGIの動作時間が増えて遅くなります。ご注意ください。

更新Ping

更新Pingの送信設定をした場所へ、更新を通知します。

詳細は、以下をご覧ください。

PASS

登録したパスワードをここで入力しておかないと、文書の書き込みはできません。

Digest表示

ダイジェストページを別ウィンドウで表示します。

Help

このヘルプを表示します。

戻る

日記編集用のトップページに戻ります。

データベース呼び出し部

ここから先は、(日記マスタでなく)日記ページに埋め込まれる各種データを集めた「データベース」を呼び出すためのボタンです。

データベースを更新しても、日記ページには即時反映されません。日記ページへの反映は、それ以降に作成した日記ページにのみ反映されます。
ヘッダ
(ダイジェスト)
ダイジェストページに埋め込まれる、「先頭からメモブロック直前まで」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。
メモ1
(ダイジェスト)
ダイジェストページに埋め込まれる、「日記本文より手前のメモブロック」の部分です。読者に対して告知性の高いメモをここで表示することを想定しています。
メモ2
(ダイジェスト)
ダイジェストページに埋め込まれる、「日記本文より後のメモブロック」の部分です。著者にとってのメモをここで表示することを想定しています。
フッタ
(ダイジェスト)
ダイジェストページに埋め込まれる、「メモブロックから末尾まで」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。
ヘッダ
(ベース)
ベースページに埋め込まれる、「日記本文より手前」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています
フッタ
(ベース)
ベースページに埋め込まれる、「日記本文より後」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。
ヘッダ
(年次インデックス)
年次インデックスページに埋め込まれる、「本文より手前」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。
フッタ
(年次インデックス)
年次インデックスページに埋め込まれる、「本文より後」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。
ヘッダ
(カテゴリインデックス)
カテゴリインデックスページに埋め込まれる、「本文より手前」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。
フッタ
(カテゴリインデックス)
カテゴリインデックスページに埋め込まれる、「本文より手後」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。
ヘッダ
(トラックバック/コメント)
トラックバック/コメントページに埋め込まれる、「本文より手前」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。
フッタ
(トラックバック/コメント)
トラックバック/コメントページに埋め込まれる、「本文より後」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。
更新Ping送信先

更新Pingの送信先一覧を呼び出します。詳細は、以下をご覧ください。

埋め込みアイテム

日付部などに埋め込まれるアイテム文字列を呼び出します。詳細は、以下をご覧ください。

マクロ

名前と引数を与えることでさまざまな文を自動生成できる、ユーザーマクロのデータベースファイルを呼び出します。詳細は、以下をご覧ください。

URIリスト

ダイジェストページに埋め込まれる、「先頭からメモブロック直前まで」を表示します。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。

トラックバック送信部
ここから先は、他の文書へトラックバックを送信するためのボタンです。送信手順は、以下のようになります。
  1. まず、日記の書き込みを行います。書き込みを行うと、[タイトル]に「トラックバックとして送るタイトルの一覧」が並びます。
  2. 続いて、送信先となる文書から、「トラックバックURL」をコピーして、[URL]に貼り付けます。
  3. [Send]ボタンをクリックすると、貼り付けた[URL]に対して、選択したタイトルの情報を送信します。
送信が成功すると、画面は送信前の状態に戻ります。送信が失敗した場合、ブラウザ画面にそれが表示されます。また、「[GNSプログラムフォルダ]/tmp/tbresult.txt」にエラーログが記録されます。詳細は以下をご覧ください。
タイトル

どのタイトルの情報を相手へ送信するかを選びます。

URL

トラックバックを送信する先のURLをここへ貼り付けます。

Send

トラックバックの送信を実行します。

更新通知メール

config.phの「$FLAG_POSTMAIL」を1にすると、ブラウザによる日記更新を行うたびに、その更新内容を指定メールアドレスへ発信することができます。

メールのフォーマットは、「メール環境」で発信するメールと同一です。詳細は、以下をご覧ください。