EasyBBS EX 2 について

Motoyuki Tanaka

Last Modified: February 27, 2000


Content

  1. EasyBBS EX 2 とは何か?
    1. 動作環境
    2. 特徴
    3. 使用上の注意
    4. サポート

  2. インストールと初期設定
    1. 最初に必ず行わなければならないこと
    2. その他の項目
    3. バーチャルホスト用の設定

  3. Web サーバの設定
    1. Action の登録
    2. 拡張子の登録

  4. EasyBBS EX 2 の運用
    1. 会議室の作成
    2. 会議室を構成するファイル
    3. 会議室へのアクセス
    4. EX.acgiのメニュー

  5. オンライン管理機能
    1. オンライン管理機能へのアクセス
    2. オンライン管理機能で何ができるか

  6. 最後に

EasyBBS EX 2 とは何か?

EasyBBS EX 2 は、MacOS の Web サーバで使用する会議室(掲示板)用の CGI プログラムです。

動作環境

MacOS 上のWebSTAR 互換の CGI を実装した Web サーバにおいて利用できます。ただし、Web 共有や MacHTTP では使用できません

AppleScript によって動きますので、AppleScript が使えるようになっている必要があります。

また、以下の osax をシステムフォルダーの正しい場所にインストールする必要があります。

これらが正しくインストールされていないと EasyBBS EX 2 は機能しません。

特徴

私が AppleScript の CGI のサンプルとして作成・公開してきた EasyBBSのシリーズの機能を強化したものになっています。

1つのページにコメントがぶら下がっていくという EasyBBS の基本スタイルは変わりません。

発言は <PRE> タグによる表示に固定され、発言中のタグはすべて無効(タグがそのまま表示される)という仕様になっています。

その他、以下のような機能を備えています。

使用上の注意

EasyBBS EX 2 は、FaceSpan 3.0.1 で作成したフリーウェアです。使用・転載等に関して、一切制限はありません。各自の責任で、どうぞご自由にお使いください。ただし、このソフトウェアを使用したことでいかなることが起ころうとも、私(田中求之)は一切の責任を負いません

サポート

EasyBBS EX 2 のサポートは、以下のオンライン会議室で行います。メールによる個別のお問い合わせに対しては答えかねますので、あしからずご了承ください。

Web Scripter's Meeting

バグや不審な動作を見つけた場合、あるいは使用していて疑問に思ったことやうまく使えないことなどがありましたら、上記の会議室で遠慮なく発言してください。


インストールと初期設定

EasyBBS EX 2 の本体である EX.acgi は、サーバから action によって呼び出すようになっていますので、基本的には、Web サーバが CGI として呼び出せるところであれば、どこにインストールしてもかまいません。一番簡単なのは、Web サーバと同じフォルダか、cgi-bin フォルダーの中に入れておくことでしょう。

最初に必ず行わなければならないこと

インストールしたら、EX.acgi をダブルクリックして起動してください。初めて使用する際には、まず手動で起動して、初期設定を行う必要があります

EX.acgi が立ち上がると、以下のような初期設定のダイアログが現われるはずです。

[preference.gif]

ここで、必ず設定しなければならないのは、Default Host に関する設定です。

Host の部分に、Web サーバのホスト名を入力してください。バーチャルホストを運用している場合の設定は後で述べますが、ここではメインのホストを一つ入力してください(IP アドレスでアクセスされたときに表示されるホストが良いでしょう)。

そして、Default Root: ボタンをクリックして、上で設定したホストのルートフォルダーを選択してください。ルートフォルダーというのは、http://your.host/ のようにホスト名だけでアクセスしたときに表示されるファイルが入っているフォルダです(そのホストに関するページが収められているフォルダ)。

この2つの設定をきちんと行わなければ、EasyBBS EX 2 は機能しません

その他の項目

Preference で設定するようになっているその他の項目について説明しておきます。

トップページのキャッシュの有効期限

トップページにアクセスしたとき、何分経てばブラウザが最新かどうかの確認を行うようにするかを指定するものです。

たとえば5分に設定しておくと、いったん表示されたページは back や forward で再表示しても、5分経つまでは、ブラウザのキャッシュが使われます。そして、5分経てば、サーバに対して新たな発言などがないかを確認しに行くようになります。

基本的に、デフォルトの5分で問題ないと思います。

デフォルトのトップページへの表示範囲

トップページに表示されるのは、過去何日間に投稿/コメントがあったものにするのかを指定します。新規に作成される会議室ではこの値がデフォルトとして使われます。

オンライン管理機能によって、会議室ごとに個別に設定することが可能になっています。

Admin Logging

書き込み(発言とコメント)が行われた時、その書き込みを行ったユーザーに関する情報を記録しておくかどうかを設定します。「管理用ログを記録する」をチェックし、保存するファイルのパスを設定しておくと、そのファイルに、書き込みごとに以下の項目が記録されていきます。

  • 書き込みの日時
  • 書き込みが行われた会議室名
  • 書き込みの種類(新規発言かコメントか)
  • 書き込みのタイトル
  • 書き込みが行われた発言の URL
  • 書き込みの際の発言者名
  • 書き込みを行ったユーザーのホスト名
  • 書き込みを行ったユーザーの IP アドレス
  • 書き込みを行ったユーザーのユーザー名(REALM の設定時のみ記録されます)
  • 書き込みを行ったユーザーのパスワード(REALM の設定時のみ記録されます)
  • 書き込みに使われたブラウザに関する情報

メッセージ編集

ここをクリックすると、以下のようなダイアログが現われます。

このダイアログで、「会議室の機能を中断している際に表示するページ」、「各発言に追加されるコメント用の FORM のタグ」、「ゲストに対する書き込み禁止のメッセージ」(REALM を設定してある会議室の場合には、guest というユーザー名では書き込みが出来ないようにしてあります)、を編集するようになっています。

バーチャルホスト用の設定

バーチャルホストによって、一つの Web サーバで複数のホストの運用を行っている場合には、ホストごとのルートフォルダーを指示するファイルを作成し、EX.acgi と同じフォルダーに入れておく必要があります。

以下の様式でファイルを作成してください。

ファイル名:EX_Hosts

ファイル名は必ず EX_Hosts にしてください。この名前のテキストファイルが EX.acgi と同じフォルダーにインストールされていた場合のみ、EasyBBS EX 2 はバーチャルホストに対応します。

EX.acgi は起動時にファイルを読み込みますので、EX_Hosts を作成または変更した場合には EX.acgi を再起動する必要があります。

ホストの記述

ホストごとに1行を使い(リターンで改行)、ホスト名とパスをタブ区切りで並べます。つまり、各行を

ホスト名<Tab>ルートフォルダーのパス

という書式で記述します。ルートフォルダーのパスは、MacOS 式の絶対パスでなければなりません。

たとえば、www.aaa.bbb.jp、www.xxx.zzz.jp という2つのホストを運用している場合には、以下のような記述になります(ホスト名とパスの間はタブ)。


www.aaa.bbb.jp    Macintosh HD:Servers:aaa:
www.xxx.zzz.jp    Macintosh HD:Servers:bbb_Web:

もし EX_Hosts に記述されていないホストに対するサクセスが来たときには、Preference で設定したデフォルトのホストに対するアクセスとして処理されるようになっています。


Web サーバの設定

EX.acgi は Web サーバから action によって呼び出されて働くようになっています。このため、Web サーバの action および Suffix mapping (拡張子)の登録を行う必要があります。

また、オンライン管理機能へのアクセスには、セキュリティを確保するため、自分が決めた拡張子を使うようにしてあります。つまり、拡張子を知っている人間しか絶対にアクセスできないようにすることで、管理者以外のユーザーが管理機能を悪用してページの書き換えや削除を行うことがないようにしてあるわけです。いわば、拡張子をパスワードの代わりに使うことで、セキュリティを確保してあるわけです。

では、具体的な設定方法を示します。ここでは WebSTAR 4.0.2 を例に取り上げます。

Action の登録

通常のアクセスの処理用と、リモート管理アクセス用の2つのアクションを登録する必要があります。

以下の2つの名前の Action として EX.acgi を登録してください。Action の名前が処理の際には重要になりますので、この名前の通りに登録してください。

通常アクセス用 Action 名: BBS

管理アクセス用 Action 名: BBS_ADMIN

拡張子の登録

通常のアクセスの BBS action に対しては、拡張子 .BBS を割り当ててください。

管理用アクセスの BBS_ADMIN action に対しては、ご自分でアクセスに用いる拡張子を決めて、それを割り当ててください。半角のアルファベットだけしか使えませんが、4文字以内である必要はありません

以下の例では BBS_ADMIN action に対して .MGR という拡張子を割り当てていますが、このような分かりやすいものは避けたほうがよいと思います。


EasyBBS EX 2 の運用

初期設定と Web の Action と拡張子の登録が完了したら準備は完了です。あとは会議室を作成して運用開始ということになります。

会議室の作成

会議室の作成は、以下の手順になります。

  1. 会議室用のフォルダーを作成
  2. Ex.acgi の Admin メニューの New Room を選んで設定を行う
  3. 必要に応じてカスタマイズを施す

まず会議室用のフォルダーを作成します。このとき気をつけることは、フォルダーの名前は半角アルファベットでつけるということです。URL に用いることが認められていないスペースや一部の記号を用いるとアクセスできなくなりますので、半角アルファベットの組み合わせで名前を付けておくのがよいでしょう。間違っても日本語でフォルダーの名前をつけたりしないでください

もちろん、会議室用のフォルダーは、Web の管理下(ルートフォルダーの内部)にある必要があります。

フォルダーの作成が終わったら、EX.acgi の Admin メニューの New Room を選んでください。すると、まずフォルダーの選択を要求しますので、先ほど作成したフォルダーを選択してください。

続いて以下のようなダイアログで会議室の名前を尋ねられますので、

会議室の名前を付けてください。

すると、以下のような会議室の設定を行うダイアログが現われます。

会議室の管理者とそのメールアドレスを記入してください。ここに記入した管理者の名前は、会議室のトップページの一番下に表示されます(トップページ用の footer ファイルの中に記録されます)。

「Redirect 用 Default.html を作成」をチェックしておくと、ディレクトリ(フォルダ)に対するアクセスを会議室のトップページのアクセスへとリダイレクトする raw ファイルが作成されます。たとえば、サーバのルートフォルダーの中に作った test というフォルダを会議室にした場合、会議室のトップページへのアクセスは、

http://your.host/test/room.bbs

という URL になるのですが、リダイレクト用のファイルを作成しておくと、

http://your.host/test/

という URL のアクセスを、room.bbs へのアクセスに導くファイルが作成されます。

ただし、WebSTAR の raw ファイルをサポートしたサーバで、Index の名前が Default.html に設定されている場合にしか有効になりませんので、この点は気をつけてください。

設定が終わりましたら、「設定」ボタンをクリックすれば、会議室の設定は完了です。

会議室を構成するファイル

設定が済んだ会議室のフォルダーの中には以下のようなファイルが作成されます(「Redirect 用 Default.html を作成」をチェックした場合)。

これらのファイルを書き換えてカスタマイズすることができるようになっています。そこで、各ファイルの果たす役割について順に説明しておきます。

なお、図で白のドキュメントアイコンで表示されているファイルは、ファイルタイプは'WSM 'になっていますが、中身はテキストで書かれています。

また、カスタマイズの際に画像のリンクを埋め込む場合には、画像を絶対パスで指定したリンクで埋め込むようにしてください。この点を守らなければ、画像が正しく表示されません。

Default.html

先ほどの会議室の作成の際に説明した、ディレクトリへのアクセスをトップページへのアクセスに導くためのファイルです。

会議室の設定の際に「Redirect 用 Default.html を作成」をチェックしなかった場合にはこのファイルは作成されません。

post_base

会議室への新規発言を投稿するためのページのひな形になるファイルです。

このファイルの中身を書き換えることで、新規発言投稿ページをカスタマイズすることが可能です。ただし、このファイルの中に書かれているタグの中には、EX.acgi が処理を行うのに必須のタグも含まれますので、その部分は気をつけてください。

オンライン管理機能を使って、ブラウザでカスタマイズを行うことも可能です。

ROOM_BANNER

各発言の先頭部分に表示されるバナーを書いておくファイルです。ここに書かれた内容が、会議室のすべての発言の一番上に表示されます。

オンライン管理機能を使って、ブラウザでカスタマイズを行うことも可能です。

ROOM_Digest

会議室の「最近の発言のダイジェスト」(最近の発言20個の先頭1Kバイト分を表示するページ)のためのデータを記録しておくためのファイルです。何も発言がないとき(会議室を作成したばかりの時)には、空白になっています。

このファイルは EX.acgi が管理しますので、書き換えたりしないでください

ROOM_footer

会議室のトップページのフッタ部分(登録発言のリストより下の部分)が書かれているファイルです。このファイルを書き換えることで、不要な検索機能を削ったりすることができます。

オンライン管理機能を使って、ブラウザでカスタマイズを行うことも可能です。

ROOM_header

会議室のヘッダ部分(登録発言のリストより上の部分)が書かれているファイルです。このファイルを書き換えることで、画像を埋め込んだり表示の色を変えたりすることができます。

オンライン管理機能を使って、ブラウザでカスタマイズを行うことも可能です。

ROOM_recent

会議室の「最近の発言状況」(最近の発言の様子を記したページ)のためのデータを記録しておくためのファイルです。何も発言がないとき(会議室を作成したばかりの時)には、空白になっています。

このファイルは EX.acgi が管理しますので、書き換えたりしないでください

会議室へのアクセス

会議室のトップページの URL は、「フォルダ(ディレクトリ)の URL + room.bbs」になります。

たとえば、サーバのルートフォルダの中の BBS というフォルダの中に作った mysoft というフォルダが会議室であった場合、

http://your.host/BBS/mysoft/room.bbs

*your.host の部分は会議室を運用するあなたのサーバのホスト名になります

が会議室のアクセスのための URL になります。

redirect 用の raw ファイルを作成しておいた場合には、

http://your.host/BBS/mysoft/

にアクセスすれば、トップページへ自動的に切り替えられるようになっています(ただし、WebSTAR raw ファイルをサポートしているサーバである必要があります)。

なお、トップページなどにはリンクは表示されないのですが、

http://your.host/BBS/mysoft/mread.bbs

という URL を使ってアクセスを行うと、前回のアクセス以降に新たに投稿あるいはコメントがついた発言だけが表示されるページにアクセスできます(未読が含まれる発言だけが表示されるわけです)。

ただし、この機能は、Cookie を使ってブラウザの側にアクセス日時を記録する仕組みになっていますので(bbs_ex_pointer という名前でアクセス日時のタイムスタンプを記録します)、Cookie 対応のブラウザで、Cookie の受け取りを許可しているブラウザでしか利用できません。ブラウザの設定によっては、Cookie に関する警告のダイアログが表示される場合もあります。

また、ブラウザの Cookie に記録を残すため、同じブラウザからアクセスしないと機能しません。

EX.acgiのメニュー

EX.acgi のメニューにある項目について、その機能を説明しておきます。

Apple メニューの About EasyBBS EX 2

EasyBBS EX 2 に関する著作権やサポート会議室の情報を表示するダイアログが現われます。

Edit メニューの Preference

EX.acgi の初期設定を行うダイアログを呼び出します。

Admin メニューの New Room

新たに会議室を作成する際の設定を行います

Admin メニューの Suspended

このメニューにチェックマークがついた状態の時には、会議室にはアクセスできません(Preference のメッセージ編集で設定を行える「中断中のメッセージ」が表示されます)。

メニューを選ぶごとにチェックが付いたり消えたりします。

なお、オンライン管理機能のページで会議室の運用を中断するように指示した場合も、このメニューにチェックマークがつきます。

Admin メニューの Online Manager

このメニューにチェックマークがついた状態(デフォルト)の時、後で述べるオンライン管理機能(ブラウザを使って会議室を管理する機能)を利用することが可能です。

チェックマークを外すと、オンライン管理機能は利用できなくなります。


オンライン管理機能

ブラウザを使って会議室の設定を変更したりカスタマイズを行うことが可能になっています。また、発言の削除や編集も可能です。

オンライン管理機能を使うためには、EX.acgi の Admin メニューの Online Manager にチェックマークがついている必要があります。

オンライン管理機能へのアクセス

先ほどの Web サーバの説明でも述べたように、EasyBBS EX 2 は、オンライン管理用ページのアクセスの際の拡張子を各自で独自に決めてもらうことでセキュリティを確保するという仕様になっています。

以下の説明では、先ほどの設定の例で用いた .mgr という拡張子を用いることとしますが、この拡張子の部分を、皆さんが自分で決めて定めた拡張子に読み替えてください。

たとえば、会議室の通常のアクセスの際の URL が

http://your.host/bbs/mysoft/room.bbs

になる会議室の管理を行う場合は、以下の URL が管理用トップページへのアクセスの URL になります。

http://your.host/bbs/mysoft/manager.mgr

つまり、会議室のディレクトリの URL + manager + <あなたが管理用に決めた拡張子> という URL を用いることになります。manager の部分は変えられません。あくまでも、拡張子の部分を変えてください。

管理用トップページにアクセスすると、以下のようなページが表示されます。
(50% に縮小してありますので、細かな部分は分からないと思いますが…)

オンライン管理機能で何ができるか

オンライン管理機能で可能なことを、管理ページに掲載してある順に説明していきます。

会議室の運用の中断/再開

メンテナンス作業中に会議室へのアクセスを認めると、編集中の発言などに新たなコメントが加わって整合性がとれなくなるといった問題が生じる可能性があります。

これに対処するため、会議室の運用を中断/再開できるようになっています。

EX.acgi の Admin メニューの Suspended を選ぶのと同じことになります。

トップページに表示される発言の範囲の設定

トップページに過去何日間に更新された発言のリストを掲載するのかを設定できます。

1以上の自然数を指定する必要があります。

発言の削除/編集

「最近の発言」および「メッセージ検索」は、発言を編集するためのものです。ここで編集したい発言を見つけ出し、発言の編集ページに移ることができます。

発言の編集ページでは、個々の発言(コメント)の編集や削除が行えます。

ただし、ページの最初の発言(スレッドの最初の発言)だけは、編集は行えても、削除は行えません。

いかなる内容の発言であれ、ページの最初の発言というのは、それ以降のコメントの起点となる発言であり、いわばスレッドの土台になるものであると考えます。ですから、これを削除するということは、発言ページ全体の存在を否定するに等しいと考え、発言の削除を認めない代わりに、ページ全体の削除を行うという選択ができるようにしておきました。

この仕様に関しては違和感を感じられる方もいらっしゃるかもしれませんが、EasyBBS のコメントの在り方の根本に関する考え方ですので、今後も変更するつもりはありません。

テンプレートファイルの編集

会議室のトップページのヘッダ部分(ヘッダーファイル)、フッタ部分(フッターファイル)、各発言の冒頭のバナー(バナーファイル)、そして新規発言用ページのファイルを、ブラウザを使って編集することができます。

Express Mail の設定

EX.acgi と同じマシンに UVJ Mailer がインストールされていた場合に、会議室の書き込みがあるごとに、その内容をメールとして決められたアドレスに発送することが可能になります。この書き込み毎のメールを、WSM Express に即して、Express Mail と呼ぶことにしています。

なお、Express Mail においては、メールの Subject は、発言(ページ)のタイトルになります。また、コメントの場合には "RE: " + タイトルになります。

この Express Mail をリストサーバを使って広く発送するようにしておくと、WSM Express のように、色々な参加者がメールで情報を受け取る(書き込みを確認できる)仕組みを構築できるわけです。

また、会議室の管理者あてに送るようにしておくことで、どのような書き込みが行われたかをメールで確認できるようになります。

Mail Log の作成

Mail Log というのは、会議室の書き込みが次々に記録されていくログファイルのことです。

この Mail Log を作成するようにしておいて、UVJ Mailer の Timer を使ってメールとして発送するようにしておけば、1時間ごとに書き込みをメールで送る会議室のダイジェストメールを発送することができるようになるわけです。

書き込み毎に以下の項目が記録されたファイルが作られます。

  • 書き込みの日時
  • 書き込みが行われた会議室名
  • 発言(ページ)のタイトル
  • 発言(ページ)の URL
  • 発言者の名前
  • 発言

タイトルリストの再構築

EasyBBS EX 2 (EX.acgi) は、発言のタイトル検索を高速で行うために、会議室のフォルダーの中に「TITLE_LIST」という名前のファイルを作成し、そこに発言のタイトルとファイル名を対応させたものを記録するようになっています。

このファイルが、発言の削除などを繰り返しているうちにおかしくなることがあります。そのような場合に、この「タイトルリストの再構築」を行ってください。

もともと開発時に、バグでおかしくなったデータを修復するために設けたものを、そのまま残しているというものですので、通常は、使用することはないと思います(思いたいです (^_^;;)。


最後に

AppleScript の CGI のつもりで作成し公開した EasyBBS が、気がつけば、こんなものになってしまいました。

スクリプトの量も増えてしまい、FaceSpan のプロジェクト・スクリプトには収まりきらず(FaceSpan 3 には、スクリプト編集プログラム同様に、スクリプトのサイズは 32K までという制約があります)、管理機能などはウィンドウのスクリプトに埋め込んで呼び出すようになっています(必要もないのにウィンドウが表示されるようになっているのは、実はこのためなんです)。

発言の検索機能が貧弱であったり、大量のページのリストを表示できないなどの弱点は多く持ったものではありますが、ただ、MacOS の AppleScript による会議室の CGI として、私が組み込めるだけの機能はほぼ組み込めたと思っています。osax に頼る部分は多いのですが、それでも、そこそこの速度で、それなりの機能のものになんたのではないかと思っています。

このソフトが、コミュニケーションの場を作っていくのにお役に立てば幸いです。