みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Apacheを入れたのにローカルでCGIが動かない

こんにちは。今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

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

投稿日時 - 2006-11-16 16:31:38

QNo.2543347

すぐに回答ほしいです

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

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

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

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

位しか考えられません。

投稿日時 - 2006-11-16 19:24:02

お礼

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

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

投稿日時 - 2006-11-16 20:15:46

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

Nii

自分でサーバー環境を構築したりでなく、動作確認のみならば、個別にインストールするよりも、XAMPPで一括インストールした方が、起動・停止をウィンドウから操作出来るので、CGIの勉強に専念できるのでは?
PHPがセットアップされるのは、記憶にあるが、perlがどうだったかは覚えてないけど、既にインストールしてるみたいだし・・・

http://phpspot.net/php/pgXAMPP.html

投稿日時 - 2006-11-16 18:22:10

お礼

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

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

投稿日時 - 2006-11-16 18:34:31

ANo.2

#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]より編集できます。

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

投稿日時 - 2006-11-16 17:23:10

補足

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

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

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

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

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

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

よろしくお願いします。

投稿日時 - 2006-11-16 17:34:49

お礼

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

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

投稿日時 - 2006-11-16 17:52:40

ANo.1

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を行えば、実行できるようになると思います。

投稿日時 - 2006-11-16 16:44:13

補足

ありがとうございます。
書き換えるファイルは
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:17

あなたにオススメの質問