- ベストアンサー
CGIがソースで表示されてしまう。
プログラミング初心者です。 ホームページでCGIを使おうと思い、 『10日で覚えるperl/CGI』という本を購入しました。 付属のCDから ActivePerl5.8.7 とApache HTTP Server2.0.54 というものをダウンロードしました。 はじめは本の通りにセットし、ローカルPC内でうまく練習できていました。 しかし、PCを買換え、新しい方にインストールして、まったく同様の手順でセットしたところで問題が起きました。 どういうわけか、ローカルのPC上での練習であっても、CGIがソースのまま表示されてしまうのです。 俗にいう『さいころゲーム』のCGIも、さいころの目がランダムで表示されるわけではなく、そのソースが画面に出てしまいます。 似たようなことがないか丸1日インターネットで調べたのですが、みつからず、ご教授お願いいたします。 足りない情報など、あるかとおもいますが、よろしくお願いいたします。 PC:windows XP Professional Version 2002 Service Pack 3 Intel(R) Core(TM)2 Duo CPU E4400 @2.00Ghz 2.00 Ghz 1.99GB RAM
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
新しいパソコンで、ディレクトリレイアウトを変更していませんか? 不具合が発生した CGI の絶対パスは、新旧パソコンで同じですか? ここで言う絶対パスは、ローカルファイルとしてのパスで、「c:\foo\bar」の格好です。 私はWindows版 Apache も『10日で覚えるperl/CGI』も全く知らないので的中しそうな例を出せないですが、鍵は「新旧のパソコンの違いは何か」だと思います。 ただ、OSの種類・バージョンとか他のインストールソフトを疑うのは最後でいいです。 自力でいろいろ調べる場合には、旧パソコンで CGI が正しく動いたのが 「ScriptAlias」 のおかげか「Options +ExecCGI」のおかげかが判っていると、調べ易いと思います。
その他の回答 (1)
- KDASH-XP
- ベストアンサー率45% (62/135)
CGIスクリプトのファイル.plやら.cgiやらが ApacheのCGIハンドラに関連づいていないためだと思います。
お礼
さっそくのご回答ありがとうございます。 夜遅くに申し訳ありません><
補足
# To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.) # AddHandler cgi-script .cgi # # For files that include their own HTTP headers: apacheのcnfというところで、#AddHandlerから#を外す作業のほうはやってみました。 関連づけるとはどのようにすることなのでしょうか。よろしくお願いいたします。
お礼
大変わかりやすい回答ありがとうございます。 昼頃からご指摘いただいた内容をチェックしていたら、今、なんとか動かせるようになりました。 お世話になりました。
補足
「新旧のパソコンの違い」など、理由は結局よくわかりませんでしたが、動かせるようになりました。ありがとうございます。 「ScriptAlias」についてネット検索したり、添付していただいた参考URLのおかげで、apacheのhttpdの記述通りの場所(cgi-bin)に、旧PCのときも、新PCのときもCGIを納めたディレクトリを置いてなかったようです。 (cgi-binというディレクトリ(フォルダ?)の中に入れるべきところが、htdocsというフォルダ内にCGIを納めてました。) 本にはhtdocsというフォルダ内につくるように書いてありました。 旧PCのほうでなぜ問題なく動いたのかはわかりませんが、教えていただいた内容から考えて、収納場所を変えてみたら動かせるようになりました。 ありがとうございます。^^