• ベストアンサー

NTでapacheとperlをインストールしてCGIテスト

WINDOWS NTの環境でネットに繋がっていない状態でCGIテストをしようと、apache_1_3_12_win32.exe (Apache 1.3.12 for Win32) とActivePerl 623をダウンロードしセットアップしました。 Apacheの動作確認までできました。 ところが、CGIが動きません。 DOSで「xx.pl」は動いているのに、「xx.cgi」をテストしようとブラウザでみてもエラーが出てしまいます。 セットアップした2つの場所は、c:\www\perl\ と、c:\Apache\です。 何が間違っているのでしょうか? どなたか詳しく教えて頂ける方がいらっしゃいましたら、大変ありがたいです。 ブラウザのエラーは 「Internet Server Error The server encountered an internal error or misconfiguration and was unable to complete your request~」というような表示です。 また違う者が前にsendmailを入れたようなのですが、その中にもapacheが入っていました。 またperlもcドライブに入っているのですが、これはまずいでしょうか? お助けください。よろしくお願いします。

  • chch
  • お礼率37% (3/8)

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

  • ベストアンサー
  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.3

とりあえず、DOSのコマンドラインでPerlのエラーチェックしてみてください。 ちゃんとPATHが通っていれば、"perl -h" でコマンドラインオプションのヘルプが出てきます。 それと、ブラウザでCGIの動作確認したときにInternal Server Error が出たら、Apacheをインストールしたフォルダ内の logs ってサブフォルダに error.log というログファイルが出来上がります。 多少詳しいエラーメッセージが記録されていますので、参考にしてください。

参考URL:
http://www.harukaze.net/~mishima/perl/
chch
質問者

補足

ありがとうございます。 "perl -h" でヘルプができてきました。 error.logの中身をみてみました。見ても分かりませんでしたが、なんとかこれも検証してみます。

その他の回答 (3)

  • 1Yen
  • ベストアンサー率28% (11/39)
回答No.4

> error.logの中身をみてみました。見ても分かりませんでしたが、なんとかこれも検証してみます。 その、エラーメッセージの内容を見せてもらえると分かるかもしれません。 また、『DOSで「xx.pl」は動いているのに、「xx.cgi」をテストしようとブラウザでみても』 とは、どういう事でしょうか。 DOS窓で xx.pl の動作確認後、xx.cgi をApacheから 起動させても、動作確認の意味が無いと思いますが... DOS窓で c:\www\perl\bin\perl.exe xx.cgi と、動作確認するべきではないかと想像するのですが。 > またperlもcドライブに入っているのですが、これはまずいでしょうか? perlが、どこにあろうと スクリプトの1行目にちゃんとその perlまでのPATHを書けば動きますので大丈夫です。

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.2

 Apacheの設定はどうなっていますか?  httpd.confの内容を確認してみて下さい。  また、エラーの内容は、『サーバで内部エラーが出て動かないぞ』って言っていますので、サーバの設定を確認して見てください。  その他としては、ユーザ権限の問題も出ているのだと思います。  Apacheの動作確認とは、ブラウザで表示が出来たって事なのでしょうか? サービスとして起動しているだけなら、cgi以外のページを表示するかどうか確認して見て下さい。

chch
質問者

補足

ご丁寧なご回答ありがとうございます。 httpd.confの内容は変更の確認しました。大丈夫だと思います。 また大変お手数ですが、宜しければサーバの設定の確認とユーザ権限の確認の仕方を教えて頂けないでしょうか? Apacheの動作確認と言いましたのは、Apache.exeを起動してから、Apacheの下に置きましたフォルダの中に作りました「index.html」と「xx.cgi」をブラウザで表示して確認したところ index.htmlは表示するのですが xx.cgiが上記のようなエラー表示で動かなかったのです。 cgi以外のページを表示するかどうかというのは、このindex.htmlの表示確認以外のものでしょうか? 分かりづらい内容で大変申し訳ないのですが、教えていただけるとありがたいです。 よろしくお願いします。

回答No.1

初めまして:-) まずインストされたPerlのパスを調べるわけですが、 DOSプロンプトから「PATH」と打ち込んで、 インストされた場所が出てきますでしょうか? また、作動させようとしているCGIプログラム内容の 一番上の行に「uer/bin/perl」のような事が 書いてあるかと思いますが、その辺はどうでしょうか? 回答ではないですが、一度ご確認下さい:-)

chch
質問者

補足

こんにちは。初めまして。 インストした場所は出てきました。 プログラムの上の部分のパスも「www/perl/bin/perl」とあってると思うのですが。。 とても速いご回答ありがとうございます。

関連するQ&A

  • apacheでcgi-binの中のファィルをcgiと

    アップローダーを設置したくて apacheでローカルで確認しているのですがcgi-binの中に.gifや.jpgなどを入れると ブラウザで The server encountered an internal error or misconfiguration and was unable to complete your request. と出てしまい.gifや.jpgが表示されません。設定をどのようにすれば表示されるのでしょうか? .cgiや.plはcgiとして認識されて動作しています。

  • ActivePerlとApacheを自分のPCにインストールしたのですが・・・。

    お願いします。 ActivePerlとApacheを自分のPCにインストールし、 CGIのテストを試みました。 Apacheのインストールは上手くいったのですが、ActivePerl がどうもうまく動きません。 Perlのインストール後、環境変数を Path→「C:\Perl\bin\;C:\Perl\bin;C:\Perl\bin\」に変更、 htdocsフォルダ内にメモ帳で記述したhello.cgiを保存後、 ブラウザにh t tp://localhost/hello.cgiと入力しても ファイルが見つかりませんと返されます。 ちなみにhello.cgiの中身は #!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; です。使用マシンはWIN XPで ActivePerlのバージョンは5.8.8,Apacheは2.2.4です。 何か助言がございましたらよろしくお願いします。

    • ベストアンサー
    • Perl
  • 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 以上よろしくお願いします。

    • ベストアンサー
    • CGI
  • Apacheの設定について

    WindowsXP SP2 のローカルでCGIを動作させるために  http://www.adminweb.jp/apache/ を参考に下記を試みました。 (1)Apache ダウンロード・インストール・接続確認   「http://localhost/」へアクセスして「It works!」表示確認    (htdocs ディレクトリの index.html) (2)ActivePerlインストール    perl -v perl -h で動作確認 (3)CGI用エイリアスの設定    ScriptAlias /cgi-bin/ "C:/SERVER/Apache/cgi-bin/" (4)以下の test.pl を C:/SERVER/Apache/cgi-bin/ に設置    ------------------------------------------------------    #!C:/Perl/bin/perl.exe print "Content-type: text/html;\n\n"; print "<html><body><h1>test cgi</h1></body></html>\n";   -------------------------------------------------------    http://localhost/cgi-bin/test.pl の実行で    「Internal Server Error」になってしまいます。 どこの設定が間違っているのか見当がつきません。 何卒ご指導宜しくお願い致します。

  • CGIのパス(Apache winで)

    初歩的な質問ですみません。 環境 windows2000 サーバー Apache/1.3.20 ActivePerl-5.6.1.626 をインストールが完了して、CGIを動作させようとしています。 ApacheでのHTML動作はできています。 CGIプログラムの一行目に #!/usr/local/bin/perl と記載されています。 その文字列を #!c:/bin/perl.exe に変更して現在動作させています。 しかし、ISPのHPスペースのperlへのパスは #!/usr/local/bin/perl なので、転送前に一行目を変更しています。 変更しなくても良いように ApacheでのCGIのパスを #!/usr/local/bin/perl で動作する方法を どなたか教えていただけないでしょうか? ちなみに Perlは[c:\bin]にインストールしてあります。 Apacheは[g:\apache]にインストールしてあります。

  • ApacheをGETする方法(Windows)

    趣味で作ってるCGI(って言ってもたいした事ないんですが;;)をテストするのに、 今までFTPでサーバーに送って、ブラウザからチェックしたりしてたんですが、 ローカルサーバーを作ったほうがいいと聞いて、いろいろ調べてみて、 Apache+ActivePerlのセットでローカルサーバーを作ろうと思ったのですが、 いざ、入手しようにも、Apacheはどうやって入手できるのかわかりません。 Apacheの英語、日本語のサイトにも見たのですが、apacheのインストーラみたいなものが見当たりません。 ActivePerlは無事にセットアップできました。 Apacheは無料のと有料のがあると聞いたのですが、無料のものでいいです。 OSはWindows98SEです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • ApacheがPerlを作動してくれないのです。。。

    CGIテストのためにローカルにサーバーマシンを立てました。サーバーはApacheを使用しPHPとPerlをそれぞれインストールしました。 PHPは正常に動いてくれますがPerlだけが何回やってもyou dont have a permission ~~~と表示されます。 ためしにコマンドでperl -v と打ったら正常にPerlは作動していました。ちなみにPerlは C:Perl\bin\perlになっておりCGIスクリプトにも #!C:Perl\bin\perlと表示しています。又、confも各サイトを見てCGIが動くようにしっかり編集しました。 どうすれば動くようになるのでしょうか?

  • ローカルテストOKのPerl サーバでのエラーです。

    よろしくご教授下さい。 単純にフォームに入力された内容を確認するためのページを作成しようとしていますが、 ローカルでのテストはOKでしたが、いざサーバにアップするとサーバエラーが出ます。 ローカルのテスト環境 サーバ AnHTTP ActivePerl Ver.5 本サーバの環境 Apache Perlのバージョン 5.6.0 パーミッションは755に変更済み。 PerlのパスもOKです。 あと、考えられるエラーの可能性をご指摘頂けませんでしょうか? よろしくお願いします。 説明不足なとこがありましたら補足致します。 参考にならないかもしれませんが、一応・・・ サーバエラーの内容です。↓ Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, *******@*******.com and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. ----------------------------------------------------------- Apache/1.3.19 Server at www.********.com Port**

  • tomcatでCGIが動きません

    tomcatをwebサーバーにしてCGI(Perl)を動かそうとしています。 非常に単純なCGIを適切な場所に配備して動作させようとしていますが、 ネスケにて「ドキュメントにデータが含まれていません。」のエラーが 発生してしまいます。tomcatのlogsディレクトリーのログを見ると、 . . 2003-11-14 11:28:12 cgi: findCGI: FOUND cgi at C:\Program Files\...\webapps\test\WEB-INF\cgi\test.cgi . 2003-xx-xx 11:28:12 cgi: runCGI (stderr):Can't open perl script "C:\Program": No such file or directory 2003-xx-xx 11:28:12 cgi: runCGI: 1 lines received on stderr と出ているので、CGIは見つけているみたいですが、runCGIにてc:\programを探そうとして失敗している様です。 tomcatのインストール先はc:\program files\apache group.....なのですが、 結局のところ、tomcatのインストール先ディレクトリーにブランクがあると×という事なのでしょうか? 勿論、tomcatでCGIを使用する場合の各種設定(servlets-cgi.renametojarのりネームや、web.xml内の マップのコメントはずし等)は行っています。CGIは以下です。 #!C:/usr/local/bin/perl.exe print "<HTML><BODY>Helloworld</BODY></HTML>"; 環境は os:win2000 web server:tomcat4.1.27 active perl5.8 駄目ならば、apacheをwebサーバーにして再挑戦しようと思います。お願いします。

    • ベストアンサー
    • CGI
  • apache1.3とperlでCGI

    超初心者です。 windows XPでapache1.3 と active perl 5.1.2をインストールして、 CGIを動作させたいと考えています。 http://localhostを入力してapacheの起動画面は表示されていること を確認しました。 その後httpdconfに下記を追加しました。 AddHandler cgi-script .cgi .pl AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl <Directory "C:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> C:\Program Files\Apache Group\Apache\cgi-binに既存で存在する printenv.plを実行しようとするとファイルのダウンロードの画面が出てきて 実行されません。printenv.plは下記のようにperl.exeへのパスだけ変更しました。 #! C:/Perl/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; } どうすればCGIが実行できるようになるのでしょうか? ご教授ください。よろしくお願い致します。

    • ベストアンサー
    • CGI