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

いつも勉強させていただいております。

発言者:Dynamite
( Date Tuesday, August 29, 2000 22:08:00 )


先日サーバ立上げから、cgiコンテンツの設置方法や作成方法に至るまでいろいろ
勉強させていただいております。
ここの「Easy BBS」を使ってi-mode用のBBSを立上げようと思いまして、
PM7600/200(ASIP)のサーバにアップしたところサーバ経由のどのパソコン
でも当然読込み及び書込はなんなくできました。(これは普通だと思います。)
それで次にi-modeでacgiに対してアクセスを試みました。そしたら書込をする
「post.html」は難なくいけました。それで、テストの書込をしてみると、i-modeの
ほうから「接続出来ません」とログが帰ってくるのです。
これは「Easy BBS」がi-modeに対応していないのかなと思い何気なしにパソコンで
それを見てみたのです。すると、i-modeから打ったテストがきちんと書込が出来ているのです。
もし書込ができていないのであればあきらめも付くのですが、なにかできるような気がするのですけど・・・
Macサーバを立てているかぎりEasy BBSでi-mode用のBBSを立上げたいなと思っているのですが。
もし解っているのであれば何かヒントを教えて下さい。
よろしくお願いいたします。

長文乱文申し訳ございません。

田中求之 さんからのコメント
( Tuesday, August 29, 2000 22:34:40 )

iMode のブラウザの仕様がわかりませんので、なんとも言えないのですが、
症状から考えるに、リダイレクトの指示の際に、相対パスによるページ指定を
iMode のブラウザがうまく処理できていないように思います。

EasyBBS では、新規発言を書き込むと、その発言のページを作成してから、
そのページを表示するようにブラウザに対してリダイレクトヘッダを送り
出すようになっています。この際、処理を簡単にするために、相対パスを
使ってページの指示を出しています。

RFC の規定では、本来は、リダイレクトの指示は絶対パスを使うべきなの
ですが現在で回っているブラウザが相対パスによるリダイレクトに対応し
ているので、上記のような(ある意味で手抜きの)処理を行っています。

ですので、問題が起こるとすれば、この部分かな、という気はします。
ここを絶対パスを使うように改造すればよいのかなと思いますが、
そうするとバーチャルホストへの対応という面倒な問題が起きてきま
すので、今のところ、私の方では改良などは行うつもりはありません。

なんといっても、私は携帯を持っていないし (^_^;;

Dynamite さんからのコメント
( Wednesday, August 30, 2000 12:49:08 )

早速のレスありがとうございます。
そうですか、先生は携帯電話お持ちじゃないですか・・・・(笑)
ただ、われわれのサーバ運営の性質上どうしてもi-mode用のコンテンツ作成が必須なんです。
EASY BBSでだめならMacPerlでi-mode用のcgiを作成もしくはcgiスクリプトダウンロードしてきて、
MacPerl用に改造するようにしたほうがよいのかもしれませんね。
できれば、EASY BBSでやりたかったのですが・・・・・
またこれからも教えてなどと、「ほざく」かもしれませんがその時はよろしくお願いいたします。

田中求之 さんからのコメント
( Wednesday, August 30, 2000 13:16:00 )

ところで、EasyBBS のどのバージョンで試されました?

POWERBOOK ARMY 飯嶋 さんからのコメント
( Wednesday, August 30, 2000 14:22:06 )

i-Modeのコンテンツ作成ガイドで,リンクは絶対パスで書くようにとの記述
があったはずですよ。たぶんこれが問題なのでしょうね。

Dynamite さんからのコメント
( Wednesday, August 30, 2000 16:11:46 )

EasyBBSの「CGI Kit 1.3」に入っている「EasyBBS_simple」を使用しております。
EasyBBSのDXとかEXはASIPは使えないとか書いてませんでしたっけ?

>POWERBOOK ARMY 飯嶋さん
なるほど・・・・ただ、田中先生がおっしゃっているように変にスクリプトを
いじくってしまうとおかしくなってしまうようなので、どうしたものかと・・・・
ぼくはほんとにサーバが立上げることが出来たのが不思議なくらい無知なものですから
スクリプトの改造するのもまま成らないような状態なんです。

>田中先生
一応BBSをUPさせているURL書いておきます。

でわ!!

→  http://create.bow.gr.jp/bbs/bbs.acgi

田中求之 さんからのコメント
( Wednesday, August 30, 2000 16:22:40 )

DX は ASIP でも使えますよ。

CGI Kit の物でしたら、簡単な改造で、絶対パス対応にできますよ。
もし

http://create.bow.gr.jp/bbs/bbs.acgi

という URL で公開することになっているのでしたら、addComment ハンドラー
の一番最後の部分

return redirect_header & "bbs.acgi?" & tgPage & crlf & crlf

を、以下のように、絶対パスで返すようにしてみてください。

return redirect_header & "http://create.bow.gr.jp/bbs/bbs.acgi?" & tgPage & crlf & crlf

また、念のため、topPage ハンドラーの中の、ページのリンクを生成して
いる部分も絶対パスに変えておきます。

set end of myData to "<LI><B><A HREF=\"bbs.acgi?" & myF & "\">" & myTitle & "</B></A><BR>"

というスクリプトを

set end of myData to "<LI><B><A HREF=\"http://create.bow.gr.jp/bbs/bbs.acgi?" & myF & "\">" & myTitle & "</B></A><BR>"

にしておきます。

これで、リンクやリダイレクトの指示は、すべて絶対パスになると思います。

…いやぁ、ひさしぶりに CGI Kit を見ましたが、この EasyBBS はシンプル
やねぇ (^_^;;

Dynamite さんからのコメント
( Wednesday, August 30, 2000 17:30:15 )

いつも早々のレスありがとうございます。
田中先生がおっしゃっているスクリプトを書き換えてアップしてみました。
すると、またまた面白い現象がでてきました。(i-modeにて)
新規投稿で書込をしてみるとやはりi-modeから「接続できません。」とコメントがあり
(それでも書込は完了している。)ます。ただ、今度はレスを打ってみようと思い
レスの部分で書込をしてみたところなぜか普通に書込が完了しました。
????これはいったい・・・・・
携帯電話をお持ちでない田中先生に質問するのは変な話なんでしょうけど・・・・


>…いやぁ、ひさしぶりに CGI Kit を見ましたが、この EasyBBS はシンプル
>やねぇ (^_^;;

主婦の60%がi-modeやPCでE-mailを利用しているという(統計ででておりました)時代
なのでなんとかこのシンプルなEasyBBSをi-modeのBBSとして活用したいなと思ってますけど
あまいですかね?

→  http://create.bow.gr.jp/i/bbs/bbs.acgi

田中求之 さんからのコメント
( Wednesday, August 30, 2000 17:47:02 )

>新規投稿で書込をしてみるとやはりi-modeから「接続できません。」とコメ>ントがあり

ということは、ステータス 302 によるリダイレクトには対応してないって
ことでしょうかね?

でも、コメントがつけられるのであれば、こっちのリダイレクトは有効って
ことだよなぁ…??

ページが見れないっていうのなら分からなくはないんですよ。iMode って
確か content-length ヘッダが必須だったはずなので(EasyBBS シリーズは
このヘッダは発行していません)。

ま、やはり自分で動作が確かめられないので、これ以上のことはよく分からない
というのが正直なところです。すみません。そのうち、携帯を買ったら
改めて自分で調べてみますけど(さすがに必要かな、とは思っているので)


…全然関係ないとは思いますが、EasyBBS Simple のヘッダには余分なものが
入っていますので、以下のようにすっきりしたものに変えておいてください。
(スクリプトの冒頭部分です)

property http_10_header : "HTTP/1.0 200 OK" & crlf ツ
  & "Content-type: text/html" & crlf ツ
  & crlf

property redirect_header : "HTTP/1.0 302 Found" & crlf ツ
  & "Location: "

また、run ハンドラーは以下のように簡単になります。

on run
  set thisFldr to (":" as alias) as string
  set msgFldr to (thisFldr & "messages:")
end run

Dynamite さんからのコメント
( Wednesday, August 30, 2000 18:37:22 )

>…全然関係ないとは思いますが、EasyBBS Simple のヘッダには余分なものが
>入っていますので、以下のようにすっきりしたものに変えておいてください。

変えておきました。

>そのうち、携帯を買ったら改めて自分で調べてみますけど
>(さすがに必要かな、とは思っているので)

また携帯電話をお買いになったら「EasyBBS i-modeEdition」をリリースしてください。(笑)
あ、それと余計なお世話かも解りませんが、携帯電話はi-mode対応でないとこれからダメですよ。
(EZ Webでも良いと思いますが)今年の年末にはi-mode対応のPHSがでるらしいのでそれが狙い目かも
しれません。(僕は完全にそれを狙います。)

いろいろありがとうございました。