MacOS X でのCGIに初挑戦
Webサイトを作る関係で、CGIスクリプトにはずいぶんお世話になっている。考えてみればたぶん、6年くらいはスクリプトとにらめっこしていることになる。 しかし、にらめっこしているだけで、中身はさっぱりわからない。僕にさわれるのはいつも、HTMLの部分だけ。書き出されるページのイメージはガラッと変えることができるようになったが、命令そのものを変更するようなことはさっぱりダメだ。
しかしこのごろ無謀にも、なんとか自分でスクリプトが少しでも書けないだろうか、と考えるようになってきた。しかもMacOS X は、ローカルでCGIが動かせるらしい。本を買っても読んでいるだけではさっぱりわからないが、目の前で動かせると多少は違うかもしれない。 ただこれ、以前も何度か挑戦してみたがうまくいかなかった。しかしなんだかフツフツとやりたくなって、ネットで情報を探して挑戦してみることにした。すると、次のようなことがわかった。
MacOS X 10.3ではまず、システム環境設定の「共有」で「パーソナルWeb共有」をオンにする。ついでに、ファイルのパーミッションをFTPソフトで変更しやすいように、「FTPサービス」もオンにしておくといいようだ。 これでまず、「Users」の自分のアカウント内の「Sites」がWebディレクトリとして使えるようになる。いや、ここまでは知っていたんだけど……(もちろん、直接ネットにつながっているマシンだと外部にも公開されることになるので要注意を)。
CGIのファイルを置くのは「/Library/WebServer/CGI-Executables」の中だという。もちろんこの場合、「Library」は「Users」内ではない。そしてこれが、いわゆる「cgi-bin」になるようだ。 逆に言えば、基本的に「Users」内の「Sites」でCGIは使えないということだろう。また「CGI-Executables」の中にHTMLファイルを置いても、それは表示されなかった。 さて、CGIのファイルを置いたらパーミッションを設定しなければならないが、それにはFTPソフトを使うのが楽。サーバ名を「localhost」にし、ユーザ名やパスワードはMacに設定してあるそれだという。自分のマシンにFTPでアクセスするというのは、なんだか変な気分だったが、無事に設定。
これで「http://127.0.0.1/cgi-bin/cgiファイル名」にアクセスすれば、設置したCGIが動いて結果が表示されるハズ……なのだが、出たのは「Internal Server Error」。参考にしたページによると、こういう場合は文法エラーだという。しかし、実はテストしたのは、ここのページのサンプルをコピーしたものなのだ。 格闘することいかばかりだろうか。ようやくたった1行の「Hello World!」の表示に成功したときは、思わず「やった!」とこぼしてしまった。 そのまま今回の教訓だが、結局問題は何だったかというと、次の二つだ。
1)スクリプトの最後の行は改行すべし 2)改行コードは「LF」にすべし
ははは、はは……、まだまだ先は長い……。
|