- ベストアンサー
CGIのファイルの種類について
初めてCGIを勉強しています。テキストを見ながら自分のPCにApacheをインストールし、Perlもインストールしました。 #!c:/perl/bin/perl print "Content-type: text/plain\n\n"; print "Good Morning !"; とメモ帳を起動して文字を入力し、保存の時に"test.cgi"とフォルダーに保存しました。 テキストには起動するとWebブラウザに文字が出ると出てますが、私の場合、ブラウザの他にメモ帳が開いてそっちに文字が出ます。よくわからないのにもかかわらず、CGI拡張子の変更のところで、ファイルの種類を削除したり、新規で作ったり何度もやってて、開かないのでメモ帳で開くように変えたりしていたのが原因ではないかと思っています。身近で詳しい人がいないので本当に困っています。 時間がなくてテキストで勉強を始めたのですが、ちゃんと学校に行って勉強すればよかったのでしょうか。後悔と行き詰まりで頭が痛くなりました…。 どなたか、もしお分かりでしたら、教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Apacheの設定ファイル“httpd.conf”の中に #AddHandler cgi-script .cgi という行があると思います。この行の先頭の "#" を外してApacheを再起動してください。(行頭に "#" が付いているとコメントだと解釈されて、無視されます。) これで「拡張子 .cgi は CGI スクリプトである」とApacheに伝わります。 また、Apache はどのディレクトリにインストールして test.cgi はどこに置いたのでしょうか。通常は CGI スクリプトは "cgi-bin" ディレクトリの中に置きます。このディレクトリは httpd.conf の中の "ScriptAlias" で決められます。 参考URLで詳しく解説されています。
その他の回答 (2)
- so_blue
- ベストアンサー率48% (50/104)
> テキストには起動するとWebブラウザに文字が出ると出てますが、私の場合、ブラウザの他にメモ帳が開 > いてそっちに文字が出ます。 恐らく、ヘッダが Content-type: text/plain になっていて、ブラウザの設定が、text/plain=メモ帳を開く、 となっているせいだと思います。 print "Content-type: text/html\n\n"; とすれば、ブラウザに表示されると思います。
お礼
アドバイス、どうもありがとうございます。ご指摘どおりヘッダを書き換えてテストしなおしましたが、やはり、ブラウザには、表示されずメモ帳が開いていました。うーーん…???お手数をおかけしました。
- nipotan
- ベストアンサー率59% (134/227)
それって、ちゃんと Apache 経由でやってます? ファイルをダブルクリックしたりして表示させたりしてません? 多分、Apache をインストールした所に、conf や bin や htdocs 等のフォルダが出来たと思いますが、cgi-bin というフォルダの中に test.cgi を入れて、 http://localhost/cgi-bin/test.cgi という URL でアクセスしてみてください。 もし、Apache 経由でアクセスしてるのであれば、SetHander や AddHandler で適宜 cgi-script を設定してあげてください。
お礼
アドバイス、どうもありがとうございます。ご指摘どおりに再確認してみましたが、やはりアドレスにはテスト画面の指示が出ているのにもかかわらず、別ウィンドウが開いてメモ帳にGood Morning!が表示されていました。まったくもってわからないことだらけです。お手数をおかけしました。
お礼
アドバイス、どうもありがとうございます。ご指摘どおり、Apacheをインストールした際に、#AddHandler cgi-script.cgiの”#”をはずしてあるのです。ScriptAliasの意味がよくわからなかったので、指示が間違っているのかもしれないと思って確認したところ、NoneとなっていたのでAllに変更しました。すると、動きました!!!どうもありがとうございます。そして詳しい解説も教えていただきまことにありがとうございます。朝の6時からの悩んでいましたが、午後になりやっと”Good Morning!”です。どうも有難うございます。