GNSをWWW環境で使うための方法を解説します。WWWサーバにCGIの形で導入し、WWW掲示板などのような要領でブラウザから日記を書き込み、そのまま公開することができます。
WWWサーバ環境は、*BSD・LinuxなどUNIX系のOSに、apacheを導入したものを想定しています。
UNIX環境でGNSを動作させるには、以下のツールが必要です。
Perlは、Perl言語で書かれたプログラムを動かすためのプログラムです。GNSは、その大部分をPerlで書いています。現在のUNIX環境では、すでにPerlがインストール済みであったり、個々のOSの専用パッケージとしてPerlが用意されていることが多いですが、もし必要であれば以下からインストールファイルをダウンロードし、コンパイル・インストールをしてください。
GNSは、バージョン5以上のPerlでの動作を想定しています。もし特定のバージョンのPerlでの動作による不具合を発見した場合は、当方までお知らせいただければ幸いです。
Perlではさまざまな追加モジュールをインストールして使うことができますが、GNSはPerlの追加モジュールの導入の必要はありません。
nkfは、日本語ファイルの文字コードを変換するツールです。お使いのOSにnkfのパッケージがあればそれを導入、なければ以下からインストールファイルをダウンロードし、コンパイル・インストールをしてください。
GNSは、nkf v2.0以降での動作を想定しています。もし特定のバージョンのnkfでの動作による不具合を発見した場合は、当方までお知らせいただければ幸いです。
日記マスタの作成や、GNSの動作設定を行うには、テキストエディタが必要です。GNSの設定ファイルはEUC-JP形式で書かれているので、vi・emacsなどの「EUC-JPの編集に対応したテキストエディタ」をご用意ください。
もちろん、手許のWindowsやMacなどのパソコンで編集して、ftpなどで転送しても構いません。
tidyは、HTMLファイルを整形するツールです。初期状態のGNSでは不要ですが、AtomをXHTML形式で出力する「$ATOM_XHTML」スイッチをONにするとき必要になります。以下からインストールファイルをダウンロードし、インストールをしてください。
これらの他に、GNS配布パッケージには、再配布可能なjcode.plというツールを組み込んでいます。もし必要であれば、以下からより新しいバージョンのjcode.plをダウンロードし、置き換えてください。
GNSは、zip版とtgz版の2つの配布形態をとっています。GNS本体としては同じものですが、UNIX版のインストーラが入っているのはtgz版のみです。
GNSの配布パッケージとなっているファイルを、tar+gzipなどを使用して解凍してください。解凍先はどこでも構いませんが、ここでは「public_html/GNS」を解凍先とします。このフォルダを「GNSフォルダ」と呼びます。
解凍が終了すると、「public_html/GNS」の下に"gns410"などの名前のフォルダ("410"はバージョン番号です)が作成されます。これがGNSのプログラムや設定データが入っている部分です。同様に、このフォルダを「GNSプログラムフォルダ」と呼びます。
# Set Mail Address and URL |
「install.sh」をエディタで開いて、右の部分をインストール先の状況に応じて書き換えます。
"my_mail"は、自分のメールアドレスです。
"my_url"は、「GNSフォルダ」をURLにしたものです。
|
「install.sh」を実行すると、右のような表示が出て、一時停止します。
表示内容が正しいことを確認してから、[Enter]キーを押すと、各種フォルダやファイルの作成・コピーが行われます。
インストールを行うと、日記マスタを収めるフォルダが準備されます。「GNSフォルダ」に、"d"という名前のフォルダが作成されたのを確認してください。このフォルダを「日記マスタフォルダ」と呼びます。
GNSは、cssに対応したHTMLファイルを出力します。「[GNSプログラムフォルダ]/style」フォルダに、これらのHTMLに対応したcssファイルセットが収められています。これは「インストール」ではコピーが行われないので、好きなcssファイルを各自で「GNSフォルダ」にコピーして利用してください。
plain | ほとんどスタイル指定のないcssファイルです。オリジナルのスタイルを作るときの雛形として使います。 |
---|---|
simple | デフォルトのスタイル指定が入ったcssファイルです。 |
日記を作成するには、GNSプログラムフォルダ内のページをブラウザからアクセスする必要があります。ここは、著者であるあなた以外のアクセスはできないようにしておくべきです。.htaccessによるBASIC認証などを使って、あなた以外のアクセスを封じるようにしてください。
GNSプログラムフォルダには、初期設定となる設定データがすでに入っています。しかし、このままでは各種情報がまだ仮のものです。まず、基本設定を行う必要があります。
ここでは、最小限の変更についてのみ解説します。詳細は、「config.phによる設定」をご覧ください。
"config.ph"というファイルが、GNSの基本設定を司るファイルです。テキストエディタで、このファイルを開いてください。
このファイルには多くの設定項目がありますが、ここで編集を行う必要があるのは、そのごく一部です。以下、順に編集項目を説明します。
# 公開URLベース名 |
日記を公開するときの、URLのディレクトリ名までの部分です。install.shで指定したものになっていることを確認してください。
この例では、公開URLのディレクトリ名を「http://www.example.ne.jp/GNS/」フォルダにします。この下に日記ページが置かれます。
# ダイジェストファイル名 |
日記を公開するときの、ダイジェストページのURLのファイル名部分を編集します。この例では、ダイジェストページのURLを「index.html」とします。
「公開URLベース名」の例と組み合わせると、この日記のダイジェストページのURLは、「http://www.example.ne.jp/GNS/index.html」となります。
# 日記名 |
日記の名前を編集します。この例では、「だいだい だいありー」という名前になります。
この項目は、出力される日記のすべてのページに埋め込まれます。
# 著者名 |
日記の著者名を編集します。この例では、「あおい」という名前になります。
この項目は、出力される日記のすべてのページに埋め込まれます。
# 著者メールアドレス |
著者宛てのメールアドレスを編集します。この例では、「aoi@example.ne.jp」というアドレスになります。
この項目は、出力される日記のすべてのページに埋め込まれます。
# 日記の説明 |
この日記の簡単な説明文を編集します。この例では、「あおいの日々の記録です。」という説明になります。
この項目は、「RSS/Atomファイル」に埋め込まれます。
# 著作権表記 |
この日記の著作権表記を編集します。この例では、「Copyright (C)2005 あおい.」という著作権表記となります。
この項目は、「RSS/Atomファイル」に埋め込まれます。
# 1で更新通知メールを発信する |
更新通知メールを出す場合は、この項を編集します。WWWで日記マスタを更新すると、その内容をメールで発信します。更新履歴を保存(バックアップ)したり、別のサーバにある日記のミラー(複製)を自動更新するのに便利です。
送信先は、次の「$MAILTO」で指定します。
# 更新通知メールの発信先メールアドレス(postmail.pl) |
更新通知メールを出す場合は、この項を編集します。前の「$FLAG_POSTMAIL」を1にすると、'aoi@example.ne.jp'に更新通知メールが発信されます。
以上で、編集は終了です。
以上が完了したら、いよいよブラウザからGNSを使用します。アクセス先は、「GNSプログラムフォルダのindex.html」です。上の例の場合は、「http://www.example.ne.jp/GNS/gns410/index.html」へアクセスしてください。右のような画面になります。
一番下の、[動作環境のチェック]をクリックしてください。
動作チェックが正しく終了した場合、右のような出力が得られます。何かエラーが発生した場合は、赤文字で表示されます。
動作チェックが終了したら、「GNSプログラムフォルダのindex.html」ページから[パスワードの登録]をクリックして、パスワードを登録します。パスワードを登録しないと、日記を書くことはできません。
パスワード登録画面になったら、[PASSWORD]と[RETYPE PASSWORD]に同じパスワードを入れ、[OK]ボタンをクリックします。パスワードが同じでない場合は、受け付けられません。
すでにパスワードが登録されているときは、パスワードの登録を受け付けません。パスワードを再登録したいときは、ftpやシェルなどから「日記マスタフォルダのkeepディレクトリ」にある"upload.pass"を削除してください。
パスワードの登録が終了したら、GNSトップページへ戻り、[日記を書く]をクリックします。下のような画面が現れ、日記の書き込みができる状態になります。
では、日記を実際に書いてみましょう。まず日付を指定します。日付に"2005", "05", "15"と入力し、読み書きセレクタを[読み出し]に設定し、[OK]ボタンをクリックしてください。
もしこの日の日記マスタがあれば表示されますが、なければ何も表示されません。
次に、日記マスタを入力します。ここでは、以下の文章を入力してみます。
@title いか〜 |
日記マスタの入力が終わったら、[test]ボタンをクリックします。これで、この日記マスタがどのように表示されるかを確認することができます。
これでよければ、読み書きセレクタを[書き込み]に設定し、[OK]ボタンをクリックしてください。日記マスタの書き込みと、日記ページの出力が行われます。
「Password Error.」という表示が出た場合は、パスワードの入力が正しくありません。ブラウザのBackボタンで戻り、正しいパスワードを[PASS:]に入力してから、再度[OK]ボタンをクリックしてください。
作成された日記は、[Digest表示]リンクをクリックすることで、すぐ見ることができます。確認してみてください。
作業中になんらかのエラーが発生した場合は、ブラウザ画面上にそれが表示されます。また、「[GNSプログラムフォルダ]/tmp/cgierr.log」にエラーログが記録されます。
更新フォーム画面上には、ブロックで区切られたいくつかの操作子があります。順に解説します。
文書の編集を行う部分です。
いちばん大きい入力枠が、日記の入力を行うエリアです。ここで、日記マスタや各種データとなる文書を編集します。
年・月・日で数値を入力する枠が、日付を入力するエリアです。この日付の日記マスタや、各種データの読み出し・書き込みを行います。
(日記マスタでなく)各種データの読み書きを行うときは、ここには特殊な定数が入ります。このときは、[yesterday][tomorrow]ボタンは効きません。
現在表示されている日付に対して「昨日」の日記マスタを表示します。
「最後に日記を書いた日」の日記マスタを表示します。
現在表示されている日付に対して「明日」の日記マスタを表示します。
すべての操作子の状態を、初期値に戻します。
[OK]ボタンの動作を切り替えます。>
[読み出し]のときに[OK]ボタンをクリックすると、指定日の日記マスタを読み出して表示します。
[書き込み]のときに[OK]ボタンをクリックすると、指定日の日記マスタ(または各種データ)を指定内容で更新します。
現在の日記マスタがどのように表示されるかをテスト表示します。
このボタンを押した直後は、まだ文書の更新は行われません。この状態でブラウザの画面を閉じると、現在編集中の文書は破棄されます。
(日記マスタでなく)各種データの編集をしているときは、このボタンは何も行いません。
文書の読み出し、または書き込みを実行します。どちらを行うかは、「読み出し/書き込み」セレクタの内容に従います。
このチェックをONにして日記マスタの書き込みを実行すると、インデックスページの更新も同時に行います。
インデックスページの更新の分だけ、CGIの動作時間が増えて遅くなります。ご注意ください。
更新Pingの送信設定をした場所へ、更新を通知します。
詳細は、以下をご覧ください。
登録したパスワードをここで入力しておかないと、文書の書き込みはできません。
ダイジェストページを別ウィンドウで表示します。
このヘルプを表示します。
日記編集用のトップページに戻ります。
ここから先は、(日記マスタでなく)日記ページに埋め込まれる各種データを集めた「データベース」を呼び出すためのボタンです。
ヘッダ (ダイジェスト) |
ダイジェストページに埋め込まれる、「先頭からメモブロック直前まで」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。 |
---|---|
メモ1 (ダイジェスト) |
ダイジェストページに埋め込まれる、「日記本文より手前のメモブロック」の部分です。読者に対して告知性の高いメモをここで表示することを想定しています。 |
メモ2 (ダイジェスト) |
ダイジェストページに埋め込まれる、「日記本文より後のメモブロック」の部分です。著者にとってのメモをここで表示することを想定しています。 |
フッタ (ダイジェスト) |
ダイジェストページに埋め込まれる、「メモブロックから末尾まで」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。 |
ヘッダ (ベース) |
ベースページに埋め込まれる、「日記本文より手前」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています |
フッタ (ベース) |
ベースページに埋め込まれる、「日記本文より後」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。 |
ヘッダ (年次インデックス) |
年次インデックスページに埋め込まれる、「本文より手前」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。 |
フッタ (年次インデックス) |
年次インデックスページに埋め込まれる、「本文より後」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。 |
ヘッダ (カテゴリインデックス) |
カテゴリインデックスページに埋め込まれる、「本文より手前」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。 |
フッタ (カテゴリインデックス) |
カテゴリインデックスページに埋め込まれる、「本文より手後」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。 |
ヘッダ (トラックバック/コメント) |
トラックバック/コメントページに埋め込まれる、「本文より手前」の部分です。タイトルや、各種注釈・注意書きなどをここで表示することを想定しています。 |
フッタ (トラックバック/コメント) |
トラックバック/コメントページに埋め込まれる、「本文より後」の部分です。著作権表記・メールアドレス・著者名などをここで表示することを想定しています。 |
更新Ping送信先 |
更新Pingの送信先一覧を呼び出します。詳細は、以下をご覧ください。 |
埋め込みアイテム |
日付部などに埋め込まれるアイテム文字列を呼び出します。詳細は、以下をご覧ください。 |
マクロデータベース |
名前と引数を与えることでさまざまな文を自動生成できる、ユーザーマクロのデータベースファイルを呼び出します。詳細は、以下をご覧ください。 |
URI置換データベース |
名前を与えることで自動的にリンクを生成する、ユーザーURI置換のデータベースファイルを呼び出します。詳細は、以下をご覧ください。 |
トラックバックフィルタ |
トラックバックスパムを排除するためのデータベースファイルを呼び出します。詳細は、以下をご覧ください。 |
コメントフィルタ |
コメントスパムを排除するためのデータベースファイルを呼び出します。詳細は、以下をご覧ください。 |
どのタイトルの情報を相手へ送信するかを選びます。
トラックバックを送信する先のURLをここへ貼り付けます。
トラックバックの送信を実行します。
config.phの「$FLAG_POSTMAIL」を1にすると、ブラウザによる日記更新を行うたびに、その更新内容を指定メールアドレスへ発信することができます。
メールのフォーマットは、「メール環境」で発信するメールと同一です。詳細は、以下をご覧ください。