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

Quid Pro Quo 2.0 でCGIを動かすには?

発言者:ざんげ
( Date Friday, July 18, 1997 10:23:39 )


Quid Pro Quo 2.0 でCGIを動かすには、どうすればいいのでしょうか?
WebSTAR同様に設定をしたはずなのですが、動いてくれません。
教えてください、お願いします。

田中求之 さんからのコメント
( Friday, July 18, 1997 20:02:34 )

ベータ版だから動かないということはありませんか?
(ドキュメントを読んでないので詳しいことは知りませんが)

田中求之 さんからのコメント
( Sunday, July 20, 1997 13:07:50 )

ドキュメントや ML を調べてみました。

2.0a で CGI を動かしたときに File Not Found が返ってきて CGI が動かない
のは、2.0a のバグです。

これを直した 2.0a3 というバージョンがまもなく出ることになっています。

ざんげ さんからのコメント
( Sunday, July 20, 1997 20:19:55 )

何度やってもダメなんで、悩んでおりました。
どうも機能がUPすると、使い方がややこしくなってくるので
手に負えなくなります。ご迷惑おかけしました。
で、1.02をダウンロードして試したら正常に動きました。
ありがとうございました。

たまちゃん さんからのコメント
( Tuesday, July 22, 1997 13:00:09 )

>>これを直した 2.0a3 というバージョンがまもなく出ることになっています。

出ました。以下がRelease Notesからの抜粋ですが、Search Serverの機能が
新たに加わったようです。

2.0a3      7/21/97        Fixed bug that broke W*API filter plug-ins
                           Included Quid Pro Quo Search Server
                           Fixed W*API to correctly dequeue plug-ins that no longer want idle time
                           Fixed W*API GetParameter() for piPluginDirFSSpec
                          Fixed MacTCP port bugs
                          Made file info cache resolve full path aliases
                          Added CertServer stuff to CDocument
                          Changed MacTCP DNS routines to stop screwing up the stack
                          Added W*API 1.2 support
                          Speeded up file info caching
                          Fixed RAW! file actions
                          Removed MRJ checks from 68K
                          Increased memory partition minimum to 4MB
                          Increased to 750K amount of free memory need to allocate cache
                          Made low memory alert threaded
                          Increased max POST arg size to 128K for MacOS, 64K for all others


→  Download Social Engineering Products

重松修 さんからのコメント
( Wednesday, July 23, 1997 06:02:31 )

>>Increased max POST arg size to 128K for MacOS, 64K for all others

これって私の英語能力では意味不明なのですが、64K for all others というのは、
QPQがMacOS以外で動作するということなのでしょうか?(@_@)
それとも、クライアントのOSがという意味でしょうか?

便乗質問なのですが、たしか Webstar が2.1になって、32Kの制限がなくなったと
いうのを読みましたが、まさか青天井?ってことはないですよね。

FutureBASIC IIではAppleEventを受け取るときにあらかじめハンドルを確保する
必要があるので、送られてくるであろう最大のサイズをあらかじめ確保するように
しているのですが、青天井だと、ちょっとこまっちゃいます。(^^;;

Webstarは買ってないし、今のところ買う予定もない(金がない)ですが、
できる限り対応させたいので、詳しい方はアドバイスをお願いします。

# やっと試験期間が終わったので、FBIIでのCGI作りを再開する予定です。(^_^)

たまちゃん さんからのコメント
( Wednesday, July 23, 1997 10:16:38 )

>>それとも、クライアントのOSがという意味でしょうか?

という意味だと思います。

>># やっと試験期間が終わったので、FBIIでのCGI作りを再開する予定です。(^_^)

やっと試験期間が終わったので、こちらは採点作業に追われます。(^_^;;)
夏休み、頑張って下さい。いつも記事を楽しみにしています。

田中求之 さんからのコメント
( Wednesday, July 23, 1997 12:35:05 )

>便乗質問なのですが、たしか Webstar が2.1になって、32Kの制限がなくなったと
>いうのを読みましたが、まさか青天井?ってことはないですよね。

まだ試していませんが、最終的に読み込める量には制限はありません。

ようは、バッファーにたまっているデータを、それが空になるまで何度も読み込む
ことを繰り返すという動作によって、POST args を取りこめるようになっている
みたいです。

>FutureBASIC IIではAppleEventを受け取るときにあらかじめハンドルを確保する
>必要があるので、送られてくるであろう最大のサイズをあらかじめ確保するように
>しているのですが

これは処理の方法としてはマズイように思います。

もし受け取るデータ(パラメータ)のハンドルを自前で確保するのであれば、まず
AEGetParmSize によって取り込もうとするパラメーターのデータのサイズを調べた
うえで、NewHandle() ハンドルを確保し、それをデレファレンスしたものを使って
AEGetParamPtr をコールするという手順になると思います。

あるいは、AEGetParamDesc でパラメーターを読み取れば、自分であらかじめ
ハンドルを確保しなくても、データのハンドルを得ることが可能です(デスクリプタ
の廃棄を最後に行うのを忘れないように)。

いずれにせよ、実行時に、必要なだけのメモリーを確保しデータを得るという方法
をとるべきでしょう。

田中求之 さんからのコメント
( Wednesday, July 23, 1997 13:41:05 )

>Webstarは買ってないし、今のところ買う予定もない(金がない)ですが、

製品をダウンロードできますよ。起動時にシリアル番号の入力を要求されますが、
このダイアログをキャンセルすると、2時間動かせるデモ版として機能します。


ざんげ さんからのコメント
( Wednesday, July 23, 1997 13:49:26 )

QPQ 2.0a3 をダウンロードしてみましたか、
CGIどころかhtmlさえ表示してくれませんでした。
ぼかぁ脳味噌がパッパラパーになってきました。
どげんすれば、よろしいのでしょうか???
ちなみに、ぼくは英語が全くダメでマニュアルを理解できません。

清 秀紀 さんからのコメント
( Wednesday, July 23, 1997 15:13:41 )

>QPQがMacOS以外で動作するということなのでしょうか?(@_@)

BeOS用が出るからじゃないでしょうか。

田中求之 さんからのコメント
( Wednesday, July 23, 1997 17:15:02 )

>QPQ 2.0a3 をダウンロードしてみましたか、
>CGIどころかhtmlさえ表示してくれませんでした。

最初に起動した際に、サーバーの設定(Configuration) を行うダイアログが表示
されたはずですが、ここでちゃんと設定を行いましたか?

CGI や Plugin の実行をどうするのか、あるいはサーバーのルートフォルダー
(ルートディレクトリー)をどこにするのか、といった設定を行うようになっています。

この設定をちゃんと行わないと、サーバーは機能しませんよ。


>ちなみに、ぼくは英語が全くダメでマニュアルを理解できません。

冷たいことを言うようですが、もしマニュアルなりドキュメント、あるいはダイアログの
メッセージが理解できないのであれば、ベータ版を試用するべきではありません。
ベータ版ですので、色々と不都合が残っていたり、これまでのバージョンとは動作が
異なったりするわけですが、それらはドキュメントを通して伝えられます。この
情報をふまえて、自分の責任で試し、不具合を見つけたらレポートするというのが
ベータ版というものです。

製品版でもドキュメントを読むことは必要ですが(これを行わない人間はサーバーの
管理者の資格はないと私は思います)、ベータ版の場合は、製品以上にドキュメントや
Read Me の情報に気をつける必要があります。

…Netscape のおかげで、ベータ版=正式版というような風潮が広まったのは
こまったもんですが…

田中求之 さんからのコメント
( Wednesday, July 23, 1997 17:26:00 )

>冷たいことを言うようですが、もしマニュアルなりドキュメント、あるいはダイアログの
>メッセージが理解できないのであれば、ベータ版を試用するべきではありません。

現在の QPQ は、ベータ版の手前の段階であるアルファ版なんですから、なおさらです。

重松修 さんからのコメント
( Thursday, July 24, 1997 03:27:06 )

>これは処理の方法としてはマズイように思います。

自分もそう思うのですが、今までは32Kと決まっていたためか、サンプルプログラム
のAppleEventからのデータの受け渡しの部分が機械語なんです。で、サッパリ
意味不明なんです。

とありえず、68000のアセンブラマニュアルを買ってきました。Z80や8086と随分
違うのでちょっと戸惑っています。漢字コードの変換処理など、機械語で書きたい
と思っています。

というわけで、Plug-inで作ったほうがよっぽど楽かも、とか思い始めた今日この頃
なのですが、それについてFutureBASIC用のAPIが当然ないので、田中先生は
Webstarのメールリストに参加されている、という発言を良く見るのですが、
これに参加したいと思いました。

残念ながら、www.starnine.comを検索して見たのですが、見当たりませんでしたので、
お手数ですが、メーリングリストについて、教えていただければと思うのですが。

宜しくお願いいたします。

田中求之 さんからのコメント
( Thursday, July 24, 1997 13:56:21 )

>自分もそう思うのですが、今までは32Kと決まっていたためか、サンプルプログラム
>のAppleEventからのデータの受け渡しの部分が機械語なんです。で、サッパリ
>意味不明なんです。

今どき機械語でサンプルを出すかぁ?という気がしますが、AppleEvent の処理は
すべて Toolbox をコールすることで行えますので、機械語でごちゃごちゃやるの
ではなく、Toolbox をつかったものに自分で書き換えるという方針の方が良いと
思います。

アプリケーションの場合、起動時の初期化の段階で AppleEvent を登録する作業と、
イベントマネージャにハイレベルイベント(AppleEvent)が届いたときに必要な
処理を呼び出すこと、そして実際にサーバーからの sdoc イベントを処理する部分
というあたりの処理を行うことになりますが、基本的には、最後の sdoc イベントの
処理の部分に変更を加えればよいはずです。

C による ACGI の作成について、Develop に記事が載っていますので、参考に
なるかと思います。また、8月に出る Macintosh Developer Journal の
私の連載の最終回には、C/C++ での CGI 作りに関して、前薗さんに書いていた
だいた記事が載る予定です(紙面の都合で、本当の骨格部分の説明だけですが)。


→  develop March 97 - High-Performance ACGIs in C

田中求之 さんからのコメント
( Thursday, July 24, 1997 14:01:22 )

WebSTAR 関連のメーリングリストについては、以下のページを見てください。


→  Mailing Lists

ざんげ さんからのコメント
( Friday, July 25, 1997 07:59:33 )

>製品版でもドキュメントを読むことは必要ですが(これを行わない人間はサーバーの
>管理者の資格はないと私は思います)、ベータ版の場合は、製品以上にドキュメントや
>Read Me の情報に気をつける必要があります。

すんません。資格がないのにサーバー管理してます。
確率的には相当悪いのですが、削除法で覚えようとしています。