• ベストアンサー

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

  • CGI
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

新しいパソコンで、ディレクトリレイアウトを変更していませんか? 不具合が発生した CGI の絶対パスは、新旧パソコンで同じですか? ここで言う絶対パスは、ローカルファイルとしてのパスで、「c:\foo\bar」の格好です。 私はWindows版 Apache も『10日で覚えるperl/CGI』も全く知らないので的中しそうな例を出せないですが、鍵は「新旧のパソコンの違いは何か」だと思います。 ただ、OSの種類・バージョンとか他のインストールソフトを疑うのは最後でいいです。 自力でいろいろ調べる場合には、旧パソコンで CGI が正しく動いたのが 「ScriptAlias」 のおかげか「Options +ExecCGI」のおかげかが判っていると、調べ易いと思います。

参考URL:
http://httpd.apache.org/docs/2.0/howto/cgi.html
azure-kasa
質問者

お礼

大変わかりやすい回答ありがとうございます。 昼頃からご指摘いただいた内容をチェックしていたら、今、なんとか動かせるようになりました。 お世話になりました。

azure-kasa
質問者

補足

「新旧のパソコンの違い」など、理由は結局よくわかりませんでしたが、動かせるようになりました。ありがとうございます。 「ScriptAlias」についてネット検索したり、添付していただいた参考URLのおかげで、apacheのhttpdの記述通りの場所(cgi-bin)に、旧PCのときも、新PCのときもCGIを納めたディレクトリを置いてなかったようです。 (cgi-binというディレクトリ(フォルダ?)の中に入れるべきところが、htdocsというフォルダ内にCGIを納めてました。) 本にはhtdocsというフォルダ内につくるように書いてありました。 旧PCのほうでなぜ問題なく動いたのかはわかりませんが、教えていただいた内容から考えて、収納場所を変えてみたら動かせるようになりました。 ありがとうございます。^^

その他の回答 (1)

  • KDASH-XP
  • ベストアンサー率46% (63/136)
回答No.1

CGIスクリプトのファイル.plやら.cgiやらが ApacheのCGIハンドラに関連づいていないためだと思います。

参考URL:
http://httpd.apache.org/docs/2.0/ja/mod/mod_mime.html#addhandler
azure-kasa
質問者

お礼

さっそくのご回答ありがとうございます。 夜遅くに申し訳ありません><

azure-kasa
質問者

補足

# 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から#を外す作業のほうはやってみました。 関連づけるとはどのようにすることなのでしょうか。よろしくお願いいたします。

関連するQ&A

  • ローカルマシンでCGIソースが出てしまう

    ActivePerl5.8.0+AN HTTPD1.42hをWindowsXPSP1にインストールしてローカルでCGIの動作を確認したところ、CGIのソースがそのまま見えてしまうという問題にぶつかりました。 CGIは、KentWebさん(http://www.kent-web.com/)のclipbord(http://www.kent-web.com/bbs/clip.html)など複数試しましたがどれも同じくソースが見えてしまう、という状況です。 何か考えられるチェックすべき点がありましたらご教授頂けると嬉しいです。 ちなみに、他のマシンでは正常に動作することを確認しています。 あるPCだけソースが出てしまうのです。 よろしくお願いいたします。

    • 締切済み
    • CGI
  • CGIでhtmlを作成するもブラウザに表示されない(ソース表示あり)

    PerlでHTMLを表示するCGIを作成しました。 ローカルPCで試しているのですが、ブラウザは真っ白な表示で、ステイタスバーには「ページが表示されました」のメッセージがでます。 ソースを表示するとちゃんと指定したHTMLタグがあります。 何が正常な表示の妨げになっているのでしょう。 ちなみにPerlのコードはそんなに難しいものではなく #!/usr/local/bin/perl require "./lib/cgi-lib.pl"; &ReadParse(); print <<END; content-type: text/html <html> <head> <TITLE>送信処理</TITLE> </head> <body bgcolor="#cccccc"> <center> $in{'data'}<BR> </center> </body> </html> END 程度のものです。 ・マシンは富士通FMVでOSはWinXP ・WebサーバーソフトはAN HTTPD Daemon Version 1.41g ・CGIはCygwinのPerl5.8.0です。 ・ブラウザはIE6-SP2です。 この様にブラウザで真っ白な表示になるのは1つのCGIファイルだけで、他のCGIファイルは正常にブラウザ表示されます。

    • ベストアンサー
    • Perl
  • ローカルでのCGIの動作させるために

    ローカルでCGIを作動させるためにApacheとActivePerlをインストールしましたが、他の質問で activePerlは、/usr/local/bin にインストール  別途ドライブが用意できるか、パーテショニングツールで独立したドライブが良い--たとえばE:\usr\local\bin apacheは、/usr/localにインストール  ---たとえば、E:\usr\local とあったのですが、このようにしたほうが良いのでしょうか? 現在は、cドライブにインストールし http://pckida.hp.infoseek.co.jp/srv/index.html を参考にApacheの設定をしてみたのですが、うまくいきませんでした。 間違っている箇所や注意しなければならない点などありましたら指摘お願いします。 使用したのは Windows7 Ultimate Apache HTTP Server 2.2.15 ActivePerl-5.10.1.1007 です。 以上よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGI実行できない。ソースが表示される

    サーバを移し変えたところ、Perlで書いたCGIが実行できません。 ソースがそのまま表示される部分があります。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <META HTTP-EQUIV=Content-type CONTENT=text/html; charset=Shift_JIS><LINK REL="SHORTCUT ICON" HREF="../favicon.ico"> <LINK REL="stylesheet" HREF="style.css" type="text/css"> ヘッダー部分です。 上記のまま表示されます。 ヘッダー部分を直すんでしたっけ? 前に経験あって、クリアしたのですが、解消法忘れました。 同じソースを実行して全部が全部実行できないわけではありません。 文字コードではなかったような気がしますが。

    • ベストアンサー
    • CGI
  • Windows版ApacheでCGIやSSI

    初めまして、 Windows版Apache HTTP Server2.0を使用しています。 SSIやCGIを使用したいのです。 ActivePerlをC:/usr/localに導入しましたが、 httpd.confをどの様に修正すれば良いでしょうか? ご指導、お願い致しますm(_ _)m

  • CGIのページをFOMAで表示させる為の方法を教えてください。

    CGIを利用した日記を自宅サーバにて公開しているのですが、 PCブラウザでは、FireFoxでみた時は、ソースが表示されます。 携帯では、FOMAだけが 『接続先のサーバーは現在ご利用できません(502)』 『Your request cannot be preocessd.(502)』 と表示されます。 他の方の質問の回答を見たところ、httpヘッダにContent-lengthを入れないといけないと書いてあったのですが、どのように入れたら良いのか、日記のCGIがダウンロードしたものなので分かりません。 サーバの環境は、Windows2000server IIS5.0 ActivePerl5.616 ちなみにIIS5.0では、カスタムHTTPヘッダ名というのがあるのですが、 ここにContent-lengthを入力することによって解決する物なのでしょうか? 入力の方法がわからないので、 よろしくお願いします。

    • ベストアンサー
    • CGI
  • cgiが動きません。。。

    つい最近、perlを勉強し始めた超初心者です。 ローカル(?)でcgiを作成したり、動かしたりしていたのですが、ホームページを開設してみようと思い立ちました。 早速、開設はしたものの、問題のcgiがまったく動いてくれません・・・ プロバイダはbiglobeです。まず、テスト用として「kantan.cgi」を用意しました。中身は #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "Hello world\n"; exit; です。ローカルではきちんと表示されます。 biglobeのwebFTPで「/public_html」に転送後、パーミッションを755に変更しました。 「http://www7a.biglobe.ne.jp/~*****/kantan.cgi」を開くと、「ページを表示できません」と表示されてしまいます。 「HTTP 500 - 内部サーバー エラー 」と書いてありますが、私には何のことだかサッパリわかりません。 アドバイスをいただけると助かります。よろしくお願いします。

    • ベストアンサー
    • CGI
  • IE6SP1表示→ソースが見れない

    お世話になります。 IE6を使っていますが、急に 表示→ソースが見れなくなりました。 PerlでCGIを作成し、(LocalのWebサーバーはAN HTTPDを使用しています)吐き出されたHTMLをソースで確認しようとしたら、いつもなら出来るところが、ソースが表示されるメモ帳すら立ち上がりません。

  • ローカル環境でのCGIエラー

    ActivePerlとAn HTTPdでWindowsXP HomeEditionのPC上でCGIを動かそうと思っています。 どちらも最新版をダウンロードしてインストールしました。 ActivePerlに関してはegフォルダ下のexample.plで動作確認が取れています。 An HTTPdに関してはhttp://127.0.0.1以下のURLを指定してページが表示されています。 ですが、htmlからcgiを呼び出そうとすると「ページを表示できません」「サーバーが見つからないか、DNS エラーです。」のエラーが出てしまいます。 試しにcgiファイルをフルパスで指定したのですが同じでした。 ちなみに、簡単なCGIプログラムtest.cgiを作成、サーバにアップして動作を確認しましたがローカルではエラーになります。 また、ローカルでコマンドプロンプトにて c:\usr\local\bin\perl c:\プログラムのパス\cgi-bin\test.cgi と入力すると内容を表示します。 コマンドプロンプトでCGIプログラムのあるcgi-binディレクトリに移動して perl -v と入力するとperlのバージョン情報を表示するので、パスは通っていると思われます。 Au HTTPdのerrors.logには Thu Aug 16 19:21:18 2007 Warning: CGI TerminateProcess 2500 error 5 とりあえず、自分で原因を絞れるであろうところはあたってみたつもりですが、何か見落としていることがあるでしょうか? もしかしたらAu HTTPdに問題があるでしょうか?

    • 締切済み
    • CGI
  • 拡張子を.plにしたら動くけど.cgiにしたら動かない(初歩的)

    バカな質問にお答えお願いします。 windows2000 IIS5.0 使用 activeperl? perlというのを練習でいろいろ 簡単なものを作っています。 自分のPCだけで、動かしてます。 無事動いているのですが、 拡張子を.cgiにすると %1 なんとかエラー みたいなのになってしまいます。 なんででしょう?

    • ベストアンサー
    • Perl

専門家に質問してみよう