このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

EasyBBS EX 公開

発言者:田中求之
( Date Wednesday, August 06, 1997 20:30:36 )


EasyBBS の実験的なバージョンである EX を公開します。

私自身がスクリプトのテストを目的として作成・使用しているものです。Read Me には
最低限のことしか書いていません。わからないことはスクリプトを見てくれ、というスタ
ンスです。そのくせ、スクリプトのサイズが大きくなっていますので、コメントをほとん
ど省いています (^_^;; 。そのかわり、この EX に組み込んだ機能に関しては、スクリ
プトの解説を別のドキュメントとして準備中です。出来上がり次第、公開します。

他の EasyBBS との大きな違いは、BBS のトップページをなくし、各会議室が独立して
運用されるようになっていることです。また、それぞれの会議室のフォルダーはサーバー
内の好きな場所に置くことができます。

その他の機能としては、CONDITIONAL_GET に対応させてあること、トップページに
キャッシュを用いるようになっていること、発言のダイジェスト機能、などがあります。
EasyBBS SR II をベースにしていますので、Cookie ヘッダーによる未読リストアップ
や、xStamp パラメーターでの検索、あるいはコメント数のカウントなどの機能もつい
てます。 

なお、ダイジェスト機能を追加するために、発言は <PRE> タグによる表示でタグは無
効という設定になっています。

このように、基本的には、この会議室の仕様と同じになっているわけです。

この EX は、ユーザー定義アクションに対応したサーバーで使用することを前提にして
あります。私の方で動作を確認したのは Quid Pro Quo 1.0.2 および WebSTAR です。
開発およびテストはすべて WebSTAR 2.1 を用いて行っています。


CGI 開発の参考にでもなれば幸いです。

→  EasyBBS EX

たまちゃん さんからのコメント
( Friday, August 08, 1997 11:17:04 )

早速テストさせたいただきました。各会議室が独立しているので、運用の仕方
によっては非常に便利になるなという感想を持ちました。いつもながら、感謝
感謝です。有り難うございました。

こちらの方で動作確認が取れたのは、田中さんと同じく、Quid Pro Quo 1.0.2 
と、WebSTAR 2.1です。QPQ 2.0 b1では、bbs.acgi自体がたちあがらないので、
確認は出来ませんでした(ベータ版だから仕方がないですね)。WebSTAR 2.0J
では何故か動いていません(動いている方がおられたらお知らせ下さい)。

いままで、Plug-In版を使っていたのですが、EX版に移行する際の注意点などを
教えていただけると幸いです。post_baseとROOM_Digestというファイルを入れ
ていないと駄目だということは分かりました。

田中求之 さんからのコメント
( Friday, August 08, 1997 13:07:51 )

>WebSTAR 2.0J
>では何故か動いていません

あ、そうなんですか? この週末にチェックしてみます(今日は、これから鯖江市が
企画した泊まりがけのインターネットセミナーの講師としてでかけますので (^_^;; )


>EX版に移行する際の注意点

各会議室のフォルダーに、post_base と ROOM_Digest ファイルを追加して入れて
おけば、基本的にはそのまま移行できるはずです。メッセージの形式などは同じですから。

ROOM_footer にも一部変更を加えていますので、こいつも Test_room から
コピーして設定し直してください。

ただし、メッセージの処理方法が <PRE> 使用/タグ無効に固定してありますので
これまでのメッセージとは整合性がとれなくなるかもしれません。この点は気をつけて
ください。

たまちゃん さんからのコメント
( Friday, August 08, 1997 13:43:08 )

》>WebSTAR 2.0J
》>では何故か動いていません
》
》あ、そうなんですか? この週末にチェックしてみます。

すみません。今、まっさらのWebSTAR 2.0Jでチェックするときちんと動いてく
れました。動かなかったのは、Plug-In版を入れていた方で、きちんとplug-in
を抜いて、アクション定義と拡張子マッピングの設定をしたのですが、エラー
が出て動かなかったというものです。これで動作確認がとれたものが、また1
つ増えました。お騒がせいたしました。

》今日は、これから鯖江市が企画した泊まりがけのインターネットセミナーの講
》師としてでかけますので (^_^;; 

という訳でゆっくりとお出かけください。鯖江には1回でいいから行ってみた
いなあ。

たまちゃん さんからのコメント
( Tuesday, August 12, 1997 13:11:49 )

QPQ 2.0 Plus b2で動作を確認しました。

たまちゃん さんからのコメント
( Thursday, August 21, 1997 12:35:41 )

いつもお世話になっております。EasyBBS EXを重宝して使っております。

昨日あたりから、各会議室のトップページに表示される現在時刻が更新されな
いという事態に遭遇しております。新規にポストしてみると、ポストした時間
が表示されるのですが、しばらくたってリロードしてみると時間が変わりませ
ん。ちなみに、Room_Top_cacheの時刻は、最後にポストした時間になっていま
す。ServerはWebSTAR 2.0です。

考えれる原因と、対処法を教えていただけると幸いです。

田中求之 さんからのコメント
( Thursday, August 21, 1997 13:17:11 )

>昨日あたりから、各会議室のトップページに表示される現在時刻が更新されな
>いという事態に遭遇しております。

最初からこの現象が起きていませんか (^_^;;

スクリプトにバグがあって、現在時間の表示部分までもキャッシュしてしまうようになって
いました(ううう、恥ずかしい)。

さっそく修正します。


たまちゃん さんからのコメント
( Thursday, August 21, 1997 13:33:16 )

>>最初からこの現象が起きていませんか (^_^;;

今週に入ってからです。それまでは、何故か起こっていませんでした。

>>さっそく修正します。

よろしくお願いいたしますです。本当に助かります。

田中求之 さんからのコメント
( Thursday, August 21, 1997 13:34:03 )

なお、EX に関して、トップページで現在時間を表示するためには、CONDITIONAL_GET
には反応しないようにすることになります(この部分にもミスがあった (^_^;; )。

この会議室のように、現在時間ではなく、最終更新時間(最後に発言/コメントが行われた
時間)を表示するように仕様を変更すれば、CONDITONAL_GET が利用できますので、
新規発言がなかった場合の会議室の表示が多少早くなりますが、どうしましょう?


たまちゃん さんからのコメント
( Thursday, August 21, 1997 15:12:18 )

>>この会議室のように、現在時間ではなく、最終更新時間(最後に発言/コメントが行われた
>>時間)を表示するように仕様を変更すれば、CONDITONAL_GET が利用できますので、
>>新規発言がなかった場合の会議室の表示が多少早くなりますが、どうしましょう?

個人的には最終更新時間が表示できるようになれば、有り難いです。それに、
会議室の表示が少しでも早くなるのであれば、なおさらいいです。

どうぞよろしくお願いいたします。

田中求之 さんからのコメント
( Thursday, August 21, 1997 17:48:16 )

トップページのキャッシュミスの修正と、表示時間を現在時刻から最終更新時刻に変更した
EX 1.01 を登録しておきました。お試しください。

Quid Pro Quo 2.0b で動作することは確かめました。

→  easyBBS_EX_1.01.hqx

田中求之 さんからのコメント
( Thursday, August 21, 1997 17:51:16 )

1.01 を使用する前に、各会議室のフォルダーの中の ROOM_Top_cache ファイルを
削除してください。


たまちゃん さんからのコメント
( Thursday, August 21, 1997 18:02:24 )

ROOM_Top_cache ファイルを削除し、1.01を試してみました。ばっちり動き
ました。(^_^)

本当に有り難うございました。悩みが解決してほっとしました。今後とも
よろしくお願いいたします。

田中求之 さんからのコメント
( Monday, September 01, 1997 16:02:35 )

会議室用のフォルダーは、基本的には会議室にしか使用しませんよね?

EX の場合、各会議室は、その会議室用のフォルダー(ディレクトリー)のフルパスを
指定してアクセスするわけですが、会議室としてアクセスするには、必ず room.bbs
というファイルの指定が必要になります。

つまり、

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

としなければならず、

 http://your.host/bbs/room1/

ではだめなわけです。で、こういうとき、会議室用のフォルダーの中に RAW! ファイルで
リダイレクト用のファイルを入れておくと便利です。

上の場合だと、room1 フォルダーの中に、以下のスクリプトによって作ったファイルを
Default.html という名前にして入れておきます。これによって、

 http://your.host/bbs/room1/

という URL によって、room1 の会議室のトップページにアクセスできるようになります。

---- RAW! ファイル用スクリプト ----

set crlf to (ASCII character 13) & (ASCII character 10)
set myData to "HTTP/1.0 302 Found" & crlf & "Location: room.bbs" & crlf & crlf

set nf to new file
writeTofile myData to nf creator "WWWス" type "RAW!"

-----

このスクリプトで作った RAW ファイルはWebSTAR, QPQ で使えます。

田中求之 さんからのコメント
( Monday, September 01, 1997 16:04:46 )

なお、ブラウザのバージョンが古い場合(特に MS IE)、リダイレクトがうまく
いかない場合がありますので、その点は注意してください。

たまちゃん さんからのコメント
( Monday, September 01, 1997 16:42:24 )

>>会議室用のフォルダーは、基本的には会議室にしか使用しませんよね?

はい。その通りです。

Default.htmlを私はいつも下記のようなメタタグを使ってリダイレクトさせて
います。少なくともIE3.0以上では問題がないようです。RAWファイルでも出来
るのをすっかり忘れていました。お恥ずかしい。

有り難うございました。EXは快調に動いておりますです。

>----
<META HTTP-EQUIV="Refresh" CONTENT="2; URL=http://your.host/bbs/room1/
room.bbs">
<HTML>
<HEAD>
<TITLE>Just a moment please.</TITLE>
</HEAD>
<BODY  BGCOLOR="#ffffff">
<CENTER>
</BODY>
</HTML>

たまちゃん さんからのコメント
( Monday, September 01, 1997 16:45:21 )

田中さんが2年近く前に書いて下さったRAW ファイルの利用法が下記の
ページにあります。

勉強しなくっちゃ。

→  WebSTAR 1.2 の RAW ファイルの利用法

sachiko さんからのコメント
( Monday, September 08, 1997 14:49:43 )

EasyBBS EX、使いやすいです!
会議室フォルダーが好きな場所に置くことができるというのが
かなりうれしいです
RAW ファイルの利用法もとてもありがたいです
自分でもちょこまかしているのですが、なかなか理解できなかったものですから
本当に、勉強しなくては(^_^;)

田中求之 さんからのコメント
( Monday, September 08, 1997 16:10:12 )

>会議室フォルダーが好きな場所に置くことができるというのが
>かなりうれしいです

会議室ごとに独立して運用するという仕様にしたために、これが可能になっている
のですが、アクセスのための URL がちょいと面倒になるかなという気もします (^_^;;

なにはともあれ、役に立っているのならうれしいです。

実験用ということで、手元のやつには色々と手を加えている状態なんですが、
今はタイトル検索機能の組み込みを考えているところです。

Aki さんからのコメント
( Monday, December 15, 1997 15:28:09 )

ものすごく初歩的なことですが、
EasyBBS EX 1.01をTanaka's osax1.2b8を使用してコンパイルしようとすると、
1行目の「property crlf」で、「この名前の後に名前を書くことが出来ません」
と表示されてしまい、コンパイルが出来ません。
なぜでしょうか?

Aki さんからのコメント
( Monday, December 15, 1997 15:32:13 )

すみません、私のシステム環境を書き忘れていました。
MacOS8Jを使用しています。
サーバーにはAppleShareIP5.0を使用します。

田中求之 さんからのコメント
( Monday, December 15, 1997 15:33:12 )

スクリプトの表現形式は英語になってますか?


Aki さんからのコメント
( Monday, December 15, 1997 23:20:25 )

表現形式を英語にしたら使えました。ありがとうございます。

Aki さんからのコメント
( Friday, January 02, 1998 11:54:16 )

フォーム(と呼んでいいのでしょうか)のコメント欄に入力された文章に,
自動で改行を入れるには,どのようにしたらいいのでしょうか?

すごく他力本願な質問で済みません。

田中求之 さんからのコメント
( Friday, January 02, 1998 15:37:31 )

飯森さんの WrapText osax を使って、ワードラップを行うスクリプト(処理)
を組み込んでください。



→  WrapText osax by Mr. IImori

hayashi さんからのコメント
( Saturday, January 03, 1998 02:22:24 )

 私は、コメント欄に文字を入力しているときに画面上で自動改行するように、
(横スクロールしないように)次のようにHTML文を変更して使わせていただいています。

 <TEXTAREA NAME="comment" ROWS=20 COLS=80 wrap=virtual></TEXTAREA>

 ご参考までに。
 なお、この動作はNetscapeでしか確認していません。

Aki さんからのコメント
( Friday, January 09, 1998 01:01:17 )

飯森さんのスクリプトは、行数固定のようですね。

クライアントの環境に合わせて、自動で折り返してくれるようにできますか?
窓を小さくしたら、それに合わせて折り返すように。
(普通にHTMLを記述したら、そうなりますよね)

Aki さんからのコメント
( Friday, January 09, 1998 12:10:46 )

hayashiさん,ありがとうございます。
私の質問は「サーバにポストした後の表示」についてのものだったのですが,
たしかに入力時の折り返し設定をすると,格段に使いやすくなりました。

田中求之 さんからのコメント
( Monday, January 26, 1998 18:48:27 )

EasyBBS EX 1.02 を登録しました。

変更点は、各会議室のトップページ、最近の情況、ダイジェスト、そして各発言
ページを HEAD リクエスト対応にしたことです。これによって、HEAD リクエスト
を使ってページの更新状況を調べるソフトのアクセスを迅速に処理します。



→  easyBBS_EX1.02

たまちゃん さんからのコメント
( Tuesday, January 27, 1998 10:09:54 )

いつもいつも有り難うございます。

EasyBBS EX 1.02の動作が、WebSTAR 3.0b11とQuid Pro Quo 2.1で確認できました。

田中求之 さんからのコメント
( Tuesday, January 27, 1998 13:01:55 )

スクリプトの変更個所はそれほど多くないので動作は問題ないと思っていましたが
無事に動いてなによりです。

CGI の入っているフォルダーのパスを得るのを、これまでの Finder に問い合わせる
のをやめて

 set thisFldr to (":" as alias) as text

に変更したのと、HEAD 対応させるさせる部分に、

if word 1 of full_req = "HEAD" then
  return httpHeader(xdate,"long")
end if

(HEAD の時には、ヘッダーのみ生成して送り返す)を追加しただけですから

しんちゃ さんからのコメント
( Wednesday, January 28, 1998 16:28:24 )

以前より
とても参考になるコメントがかかれおり
眺めているだけなのに、2時間も滞在してしまいました(笑)。
ぼくも早速試させて頂きます。

たまちゃん さんからのコメント
( Friday, January 30, 1998 15:58:35 )

Personal WebSharing 1.5でもきちんと動作しました。

Aki さんからのコメント
( Sunday, February 08, 1998 21:08:17 )

HEADリクエストって何ですか?
FAQでしたら,申し訳ありませんが,情報源をお教え願えないでしょうか?

また,田中さんにお願いです。お忙しいこととは思いますが,
スクリプトの解説のファイルを用意してください。
Apple Script超初心者ですが,カスタマイズしたいと思いますので。

田中求之 さんからのコメント
( Sunday, February 08, 1998 22:53:59 )

Web サーバーに対して、ページのヘッダー情報( HTTP ヘッダー)のみ送るように
要求するリクエストが HEAD リクエストです。普通のページへのアクセスのように
ヘッダー情報+ページのデータを要求するのは GET リクエストになります。

サーチエンジンの Robot などが、ページが更新されているかどうかを確認する
のに使われます。 HTTP ヘッダーには、ページの最終更新日の情報などが含まれ
ますので、これをチェックするわけです。ヘッダーのみしか送られませんから、
通信時間も短くて済むわけです。


>FAQでしたら,申し訳ありませんが,情報源をお教え願えないでしょうか?

FAQ ではないでしょう。でも、これから CGI を作っていくなら、HTTP ヘッダー
やプロトコルに関して理解する必要があると、私は個人的に考えています。
AppleScript の CGI は、HTTP ヘッダーも含めてすべて自分でコントロール
できる(する)ようになっているのですから。

EX の解説については、何をどのように処理しているかについて述べたものは
用意したいと考えています。ただ、初心者に手取り足取り教えるようなものに
はなりません。基本的には、EX は、知りたいことはスクリプトを読んでくれ
というスタンスのサンプルですから。

Aki さんからのコメント
( Monday, February 09, 1998 20:18:13 )

つまり,<head>〜</head>で囲まれた部分のみを要求することで,
すべてのHTMLを要求するよりも,処理が速くなったということなのですね。

毎度初心者の質問に答えていただき,ありがとうございます。
大変重宝しています!

田中求之 さんからのコメント
( Monday, February 09, 1998 21:17:33 )

>つまり,<head>〜</head>で囲まれた部分のみを要求することで,
>すべてのHTMLを要求するよりも,処理が速くなったということなのですね。

残念ながら違います。 HTTP ヘッダーというのは、通常のブラウザのアクセスでは
見えない、サーバーとブラウザとの間でやり取りされる部分です。この部分をコント
ロールすることで、さまざな仕掛けが可能になるのです。

よしもと さんからのコメント
( Monday, February 09, 1998 21:26:02 )

例えば、telnetでポート80に繋げば、次のような感じで見れます。

(例)ただし、サーバはApacheです (^^;

% telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.xxx.jp.
Escape character is '^]'.
HEAD / HTTP/1.0  <- (これを入力して、enterを2回)

HTTP/1.1 200 OK
Date: Mon, 09 Feb 1998 12:20:06 GMT
Server: Apache/1.2.5
Last-Modified: Wed, 22 Jan 1997 04:47:27 GMT
ETag: "54985-2c-32e59bdf"
Content-Length: 44
Accept-Ranges: bytes
Connection: close
Content-Type: text/html

Connection closed by foreign host.

(おわり)

どうです<HEAD>...</HEAD>とは違うでしょ。

くば さんからのコメント
( Tuesday, February 10, 1998 22:58:56 )

はじめまして
1月末から下記の構成でサーバを立ち上げてEasyBBS EXを試験運用させていた
だいています.freeで公開していただいて感謝しております.
  OCNエコノミー
  Power Macintosh 6100/66/72M
  QuickDNS Pro 2.0
  Quid Pro Quo 2.1
  EasyBBS EX 1.02
    Tanaka's osax 1.24
  EIMS 2.0
特に問題なく動いているかと思ったのですが,
Can't get item 1 of {}.
というメッセージが出て書き込みができないことが何度かみられています.
当初は新規発言の時だけかと思われたのですが,コメントの際にもあるという
報告があり,bbs.acgiの割り当てメモリを2MBまで増やしてみたのですがまだ
ときどき書き込みエラーがあるようなのです.

どのような原因が考えられますでしょうか?

なお,PlugInへの移植も間近とのことでこちらも期待しております...

→  くば小児科クリニック

田中求之 さんからのコメント
( Tuesday, February 10, 1998 23:08:05 )

>Can't get item 1 of {}.
>というメッセージが出て書き込みができないことが何度かみられています

スクリプトのバグのような感じですね (^_^;; ちょっと調べてみます。

メモリーの割当は1Mもあれば十分です。メモリー不足が原因ではないと思います。

田中求之 さんからのコメント
( Tuesday, February 10, 1998 23:18:13 )

ページを読む(見る)場合は問題ないのですね?

それと、エラーは必ず起きますか? それともたまに起こるのでしょうか? 条件に
よってかならず再現するのであればスクリプト側の問題の可能性が高いですが、そう
でない(何らかのタイミングで時々起こる)のであれば、サーバー側の問題である
可能性もありますので。

田中求之 さんからのコメント
( Tuesday, February 10, 1998 23:42:31 )

スクリプトには問題がないようです。 QPQ Plus でテストを繰り返してみましたが、
エラーも出ません。

変ですね?

ところで、サーバーのルートフォルダーはどのように設定されていますか?
アプリケーションが入っているフォルダーがルートフォルダーになっています
でしょうか?

くば さんからのコメント
( Tuesday, February 10, 1998 23:50:37 )

早速ありがとうございます 読む場合は全く問題ないようです
書き込み時のエラーはどのようなときに起きるのかわからないのですが,毎回
ではありません.サーバー側と言えば,書き忘れたのですが昼間は同時にファ
イルメーカーProサーバを起動させていますが関係ありますか? 「このコン
ピュータについて」をみると,全体のメモリはまだ30Mも余っているのですが,
システム(MacOS8)の占有メモリが14MBでグラフの黒い部分がほとんど振り
切っているのが気になると言えば気になりますが...

田中求之 さんからのコメント
( Wednesday, February 11, 1998 01:53:35 )

ファイルメーカーPro が動いていることは何の関係もないはずです。影響が
出るとしたら、処理速度の低下ぐらいでしょう。

システムのメモリーが振り切っていることも気にする必要はないと思います。
私のところも似たようなものですから。

書き込み時のみにエラーが出るのであれば、QPQ の問題である可能性もあります
(POST アーギュメントが正しく送られてこない等)。もし可能ならば、他の
サーバー(QPQ 1.02 や webSTAR など)で試してみていただけますか。

くば さんからのコメント
( Wednesday, February 11, 1998 09:33:26 )

了解しました QPQの古いバージョンは探せなかったので,WebSTARのデモ版を
試してみようと思います(あとで時間ができたら...) ありがとうございました

田中求之 さんからのコメント
( Wednesday, February 11, 1998 14:45:32 )

QPQ 1.02 は以下の FTP に登録されています

→  QPQ ftp