CGIでソースがそのまま表示されてしまうのはなぜ?
- CGIやPerlを学んでいる初心者が、作成したソースがそのまま表示される問題に困っています。どのように修正すれば良いのか教えてください。
- 質問者は最近CGIやPerlを学び始めましたが、作成したソースがそのまま表示されてしまいます。どのようにすれば解決できるのかお教え願いたいです。
- CGIやPerlの初心者が作成したソースがそのまま表示されてしまう問題に困っています。どの部分を修正すれば正しく表示されるのか教えてください。
- ベストアンサー
CGIでソースがそのままでてしまうのですが・・・。
CGIでソースがそのまま表示されてしまうのですが、どうしてなのでしょうか? 先週からCGIやPerlを学び始めました。そこで簡単なものを試しに作ってみたのですが、入力したソースがそのまま表記されてしまいます。 ちなみに、こんなものです。 #! c:/perl64/bin/perl print "Content-type: text/plain\n\n"; print "Hello Perl !"; どこをどう変えればいいのか、わからないので、質問してみました。 わかる方がいましたら、教えてください。 初心者なので、お手柔らかにお願いします。 . この質問に補足する.
- INAMATU
- お礼率32% (13/40)
- CGI
- 回答数5
- ありがとう数1
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
CGIスクリプトのソースがそのまま出力されるのは、そのファイル/URIがCGIとして実行できていないためです。 httpd.confの<Directory>ディレクティブや<Location>ディレクティブなどの指定箇所が間違えているか、 ファイルの拡張子を間違えているか、 httpd.confを書き換えてからApacheをリスタートしていないか。。。 Forbiddenが出てきたら.cgiファイルに実行権限が無い。 Internal Server Errorが出てきたら、Perlがインストールされていないか.cgi拡張子とPerlが関連づけられていない。 ということが考えられます。
その他の回答 (4)
- LEVELUP100
- ベストアンサー率40% (183/453)
よくあるミスの一つなので、ネットに情報があります。 CGIのソースが表示される http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9681&forum=10 CGIを有効にする http://www.be-webdesigner.com/technotes/server/httpd_conf/cgi.htm
補足
LEVELUP100さん ありがとうございます。 参考にさせていただきます。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2281)
>No.2お礼 >という具合に設定を変えました。 すると、どうなりましたか?
補足
そうすると、ソースがそのまま表示されてしまうんですよね。質問に書いたソースが、そのまま・・・。 これでもうわからなくなってしまったわけです。
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2281)
そのファイルをCGIで実行するように、ウェブサーバーが設定されていますか?
補足
talooさん ウェブサーバーはapache2を設定しています。 そして、 Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All AddHandler cgi-script .cgi AddType text/html .shtml AddOutputFilter INCLUDES .shtml という具合に設定を変えました。
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 まず、確認ですがperl自体のインストールはきちんと出来ていますか?
補足
LancerVIIさん こんにちは。 perlはインストールされています。
関連するQ&A
- Apache初心者です
本日一度質問しました。 10日で覚えるPerl/CGI入門教室という参考書を買って ApacheとActivePerlをインストールしました。 Apacheはバージョン5.1.2600.0になっています。 これで、インストールは完了し、本書の通りに インストール先も完璧に出来ているはずです。 第一日目のお勉強が #! c:/perl/bin/perl print "Content-type: text/plain\n\n"; print "Hello Perl !"; これでブラウザには Hello Perl ! と表示されるはずなのですが #! c:/perl/bin/perl print "Content-type: text/plain\n\n"; print "Hello Perl !"; ↑このまんまが表示されます。 一日目でつまずいてしまって途方にくれてます。 WindowsXP ウイルスバスター2006が入っていて 3台のPCをルーターで繋げています。 どこに間違えがあるのでしょうか? 初歩的なことですみません。
- ベストアンサー
- CGI
- サクラのレンタルサーバーです。CGIが動きません
サクラのレンタルサーバーを借りました。 早速CGIを試そうと思ったのですが、原因不明のInternal Server Errorが出ます。 cgi-binはいらないとのことですので、wwwにそのまま入れました。 index.htmlも同じ場所にありそれは出ますのでパス間違いではないです。 またパーミッションも777にしてみましたが駄目です。 #!/usr/local/bin/perl print "Content-Type: text/html\n"; print "\n"; print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; こんな感じで、TELNETでログインして実行も出来ます。 bash-2.05b$ ./index.cgi Content-Type: text/html <html><body>abc</body></html>bash-2.05b$ いろいろ調べたのですが ◆パーミッション→OK ◆TELNETで実行してみる→OK ◆perlへのパスは?→/usr/local/bin と /usr/bin どちらでもいいそうです。験しに変えましたが状況変わらず。 何か気が付いたことがあれば教えてください
- ベストアンサー
- CGI
- cgiでコードがそのまま表示されてしまいす。
CGIを勉強中なのですがブラウザにコードがそのまま表示されてしまいます。 OSはビスタ、ソフトはActivePeal5.7.8.813とapache_2.0.54を使っております。 会社のパソコン(XP)だとスムーズに行くのですが、自宅のビスタだとそうはなりません。 他の方の質問を参考にいろいろ試したのですが、解決できません。 #! c:/perl/bin/perl # CGIヘッダーの出力 print "Content-type: text/html\n\n"; こんなかんじでブラウザに表示されます。 どの様な対処方法がありますでしょうか?
- 締切済み
- CGI
- CGI勉強中(初心者です)
#!/usr/bin/perl print "content-type:text/html\n\n"; print "<HTML>\n"; print "<head><title>CGI</title></head>\n"; print "<BODY>\n"; print "<H1><FONT COLOR=\"#FF0000\">こんにちは</FONT></H1>\n"; print "</BODY>\n"; print "</HTML>\n"; というCGIつくりました。 プロバイダの説明には Perlの場所 /usr/bin/perl または /usr/local/bin/perl となっていますが、 どこにどう置いて(ホームディレクトリでしょうか?)、どうやって起動させてよいのかさっぱりわかりません。 ご教授ください。
- ベストアンサー
- CGI
- CGIファイルの送り方教えて下さい
はじめまして!超初心者です。 最近CGIを本を見ながら勉強しているんですが ファイルの送信の仕方が分かりません。やはり HTMLファイルとは送信の仕方が違うのでしょ うね?誰か教えて下さい。 (FTPソフトはFetchです。) ちなみに送りたいファイルは --------------------------------- #!/usr/local/bin/perl print "Content-type: text/html\n"; print "\n"; print "<HTML>\n"; print "<H1>Hello!</H1>\n"; print "</HTML>\n"; --------------------------------- です。
- ベストアンサー
- CGI
- CGIのテストに失敗
ただ今ホームページを作成中で、CGIに興味を持つようになりました。 簡単なところから実際にやってみようと思い、Active PerlとAN HTTPDをダウンロードしてインストールまで完了。 ネットのCGI講座や入門といったサイトを参考にしながら、AN HTTPDの設定はできたのですが、簡単なはず?のCGIのテストに失敗してしまいました。 以下のような記述でファイル名をtest.cgiにして、httpd.exeと同じフォルダのcgi-binというフォルダに保存、http://localhost/cgi-bin/test.cgiでブラウザから開こうとしたのですが、ダメでした。 #!C:\Perl\bin print "Content-type: text/html\n\n" ; print "Hello, World!" ; 何がまずかったのかわかりません。Active Perlはデフォルトでどこもいじっていません。環境変数のPathもC:\Perl\bin\になっているのですが…。いろいろと見てまわったのですが間違いがわかりません。 どなたか教えていただけると幸いです。
- ベストアンサー
- CGI
- 外部コマンドで返された値をCGIで取り込むには?
外部コマンドで返された値をCGIで取り込むには? 環境:Activeperl 5.8.9/IIS6/Windows2003Server [hello.cgi] ==================================== #! /Perl/bin/perl #HTMLヘッダーを出力します print "Content-type: text/html\n\n"; print "エコーのテスト<BR>"; my $msg=`echo hello`; print "エコーは".$msg."です"; exit; ==================================== 上記cgiを、Windowsのコマンドプロンプト上で「c:\perl>hello.cgi」とすると、ちゃんとDOS窓上で動きますが。同ファイルに 対して、http://www.test.com/scripts/hello.cgi とすると、ブラウザ上にて、 ============= エコーのテスト エコーはです ============= のような感じになって、$msgを出力してくれません、どうしてでしょうか?お知恵をおかしください。
- ベストアンサー
- Perl
- 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
- cgi(perl)でパラメータが渡せない
以下のプログラムでnum=9が伝わらないので、ミスをご指摘ください。 グラフィカルなアクセスカウンタを表示させようとしていますが うまくいかないのでテキストモードでデバッグしています。 [ /usr/local/apache2/htdocs/gif-view.html ] <html> <head> <meta http-equiv="Content-type:" content="text/html; charset=UTF-8"> <title>gif-view</title> </head> <body> <iframe src="/cgi-bin/gif-test.cgi?num=9"></iframe> <!-- <img src="/cgi-bin/gif-test.cgi?0" width=50 height=50> --> </body> </html> [ /usr/local/apache2/cgi-bin/gif-view.cgi ] permission は 755 にしています。 #!/usr/bin/perl print "Content-Type: text/plain;\n\n"; print "gif-test.cgi\n"; $prm0 = @ARGV[0]; if($prm0 = "") { print "Param is exist\n"; } else { print "Param is empty\n"; 実行結果として gif-test.cgi Param is empty となります。 httpd.conf で Script Alias /cgi-bin/ "/usr/local/apache2/cgi-bin/" を有効にしています。
- ベストアンサー
- Perl
- HTMLからCGIへデータを引き継ぎ
HTMLでメールフォームを作りCGI(Perl)で次のプログラムを作りました。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "$mail\n"; print "$namae\n"; print "$naiyou\n"; 動作確認のためプログラムは少しにしました。何も表示されません。
- ベストアンサー
- Perl
お礼
遅くなってしまいましたが、本当にありがとうございました。 わかりやすく教えていただいたので、とても助かりました。
補足
talooさん 出来ました!! apacheをリスタートさせたら出来ました。 何度も丁寧にアドバイスを下さいまして、ありがとうございました。 とても感謝しています。