アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。今CGIの勉強をしています。perlを使っているのですが、サーバーにアップする前にローカルで動作チェックをしようと思い、ApacheとActivePerlをインストールしました。
その後、Apacheを起動して、ローカルのCGIファイルにアクセスしたのですが、ページを表示できませんと出てしまいます。
ping localhostはちゃんと通ります。

環境
OS:WindowsXP HomeEdition SP2
セキュリティーソフト:無し
ファイヤーウォール:解除済み

Apache設定
Network Domain 127.0.0.1
Server Name   127.0.0.1
Version2.0.58

ブラウザ:IE6.0
プログラム保存先:C:\Program Files\Apache Group\Apache2\htdocs
ファイル名:hello.cgi(拡張子表示有にしている。.txtなどは無い)

ActivePerl:Version5.6
保存先:C:\Perl\bin(C直下)

コード
#!C:/Perl/bin/perl

print "Content-Type: text/html\n\n";
print "<html>\n";
print "<body>\n";
print "<h1>Hello World!</h1>\n";
print "</body>\n";
print "</html>\n";
exit;


参考にしたサイト
http://perl.misty.ne.jp/01.html

以上よろしくお願いします。

A 回答 (4件)

#1です。


「サーバが見つかりません」ということは、サーバが動作していないことが考えられます。
Apacheの設定は関係ないと思います。

まず、http://127.0.0.1/で、「It worked!」のページは表示されますか?
私の予想では、それすら表示されない(サーバが見つかりません)になると思いますが?
となると、原因は

・Apache(httpd)が動作していない
・ApacheのListenポートが80になっていない

位しか考えられません。
    • good
    • 0
この回答へのお礼

なるほど・・・
http://127.0.0.1/
でもやはりページが表示されませんでした。
今回はあきらめます^^;

色々ありがとうございました。

お礼日時:2006/11/16 20:15

自分でサーバー環境を構築したりでなく、動作確認のみならば、個別にインストールするよりも、XAMPPで一括インストールした方が、起動・停止をウィンドウから操作出来るので、CGIの勉強に専念できるのでは?


PHPがセットアップされるのは、記憶にあるが、perlがどうだったかは覚えてないけど、既にインストールしてるみたいだし・・・

http://phpspot.net/php/pgXAMPP.html
    • good
    • 0
この回答へのお礼

あ、そういえばXAMPPでApache使えましたね・・
すっかり忘れてました。 
XAMPPもう入ってるのに 笑

XAMPPでやったら無事表示できました♪
でも、なぜApache単体で駄目なのか気になります。。

お礼日時:2006/11/16 18:34

#1です。


httpdのリスタートはしましたか?

【リスタートの手順】
[スタート]→[Apache HTTP Server X.XX]→[Control Apache Server]→[Restart]

リスタートする前にhttpd.confをテストしてください。

【テストの手順】
[スタート]→[Apache HTTP Server X.XX]→[Configure Apache Server]→[Test Configuration]

あと気になる点としては、スクリプトの1行目が

#!C:/Perl/bin/perl

となっていることです。正しくは

#!C:\Perl\bin\Perl.exe

です。
ブラウザのプロキシの設定はどうなっていますか?
localhost; 127.0.0.1; 192.168.X.X(自分のIPアドレス)を例外設定にしておかないと、プロキシでエラーになります。

ちなみに、httpd.confは[スタート]→[Apache HTTP Server X.XX]→[Configure Apache Server]→[Edit the Apache httpd.conf Configuration File]より編集できます。

正確なエラー表記を補足してください。

この回答への補足

ありがとうございます。
まず、リスタートですが、
[Apache HTTP Server X.XX]→[Control Apache Server]→※[Restart]
※部分が存在しませんでした。

リスタートは、一度コマンドプロンプトを閉じて、再度start Apache in consoleをクリックし、スタートさせました。

#!C:\Perl\bin\Perl.exeについては、書き換えてみましたが・・だめです。

ブラウザのプロキシですが、プロキシを使用しない状況にしてあるので、設定などはグレーアウトしています。

正確なエラー表記とのことですが、
「サーバーが見つかりません」というメッセージです。
ブラウザのタイトルがこれで、中身はページを表示できませんと出ています。オフライン状態のときに出るやつです。

もしかして、何かとても初歩的なことをミスってるのでしょうか・・?
質問の「参考にしたサイト」に出ている手順どおりにやったつもりなのですが・・。

よろしくお願いします。

補足日時:2006/11/16 17:34
    • good
    • 0
この回答へのお礼

#!C:\Perl\bin\Perl.exeですが、最後のperl.exeは本体が小文字だったので、小文字にしてあります。CGIファイルを書き換え大文字でも試しましたが、結果は同じでした。
また、アクセス先ですが、
http://127.0.0.1/hello.cgi」にしています。

よろしくおねがいします。

お礼日時:2006/11/16 17:52

Apacheは、デフォルトの設定ではDocumentRootに配置したファイルはCGIと認識されません。


httpd.confを開いて、DocumentRootの設定におけるOptionsの行を見てみてください。

Options Indexes FollowSymLinks

となっていると思いますが、最後に"ExecCGI"を追加しないといけません。

Options Indexes FollowSymLinks ExecCGI

あと、こちらはデフォルトで設定されていますが、*.cgiをCGIと認識してもらうために

AddHandler cgi-script .cgi

の表記が必要です。
デフォルトの設定に入っていると思いますが、もしかしたらコメントアウトされているかもしれません。その場合は、#を消してください。

httpd.confを書き換えたら、Restart httpdを行えば、実行できるようになると思います。

この回答への補足

ありがとうございます。
書き換えるファイルは
C:\Program Files\Apache Group\Apache2\conf\httpd.confでいいですよね?httpd.default.confのほうではないですよね?
Options Indexes FollowSymLinks ExecCGIをそのままコピペし、コメントアウトしていたAddHandler cgi-script .cgiの#も削除してみました。
しかし、動きません^^;

他に何かありましたご教授くださいm(__)m

補足日時:2006/11/16 17:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!