Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: namazu.cgi について質問させてください



森本です。

In article <EBECKAJNIMJMDBLOBOHNMEFFCBAA.suyama@xxxxxxxxxxxxxxx>,
 at Thu, 19 Jul 2001 10:32:25 +0900,
  on [namazu-users-ja] Re: namazu.cgi について質問させてください,
 "Naoya Suyama" <suyama@xxxxxxxxxxxxxxx> wrote:

> このテストをしてどうしてもおかしいと思ったのでもう一度ブラウザーで確認してみ
> ました。
> ところ正常に動作していました。
> /cgi-bin/namazu.cgi
> では駄目だったので。
> /cgi-bin/namazu.cgi?
> と”?”をつけたところ正常に動作したようです。

うーーん... 「? をつけたら正常になった」というのは、何だろう?
ひとつ考えられるのは、

 * 何回もブラウザーで同じ URL を確認したのだが同じエラーが出てきた
 * でもそれは、単にブラウザーがキャッシュしていた内容が表示されていた
   だけであって、実際の結果ではなかった。ちゃんとリロードされてなかった。
 * URL に ? をつけることによって、いままでとは違う URL になったので、
   ブラウザがちゃんとデータを取りにいき、実は正常動作していたことを
   確認できた。
   -> あるいは、? の含まれる URL ってのはだいたい cgi だから、こりゃ
      キャッシュしちゃいかん、という判断がどこかでなされた可能性も
 * ブラウザで結果確認するときはちゃんとリロードしよう。
   できれば、いわゆるスーパーリロード
    Netscape 系なら Ctrl + Reload ボタン (だったかな?)
    Internet Explorer 系なら Ctrl + F5
 * もしこれなら、ブラウザのキャッシュまわりの設定もおかしいかも

というシナリオですが、違うような気がするなぁ..

> どこかにこのような設定を書いてあったのでしょうか?
> Linuxの環境でテストした時は必要無かったので確認していませんでした。

いやー、必要ないです。僕も Solaris 2.x の Netscape Enterprise Server 
上で namazu をずっと使っていましたが、? が必要、という状況が思い当たり
ません (上記のケースを除いて)
__

export QUERY_STRING=key=abc がエラーになった件ですが、もし、いわゆる 
Linux 向けの本を参考にしつつ Solaris を操作されているのであれば、
ここはちょっと落し穴です。

普通の (純正の、あるいはメーカー製の、いろいろ表現はあるかと思いますが)
UNIX についている /bin/sh では、

  QUERY_STRING=key=abc
  export QUERY_STRING

まずは定義代入して、それを環境変数に格上げする、と二つに分けて書かない
とだめです。これが古くからの /bin/sh (Bourne Shell) の仕様です。

一方、おそらくほとんどの Linux ディストリビューションに /bin/sh として
入っているのは、Bourne Shell の上位互換である、GNU の bash (Born Again
Shell) です。こっちは

  export QUERY_STRING=key=abc

のように、一行で代入定義して環境変数にもしちゃえ、という便利な書き方が
できます。便利なんですけど、これはあくまでも bash の独自拡張なので、
世の中の /bin/sh ってみんなこう書けるんだ、と思っていると はまります。

# Linux から入った人だと、そう思っている人もいるみたい..

.. 森本 淳 (Jun Morimoto) ...........................................
.. morimoto@xxxxxxxxxxxxxxxxxx  http://mrmt.net/ ....................