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

今Apacheを使っているのですが、
サポートにしたがってfirst.plで動作確認もしたのですが、どうしてもInternal Server Error
になってしまいます。エラーログを
見てみますと

[Sun Apr 18 11:54:57 2004] [error] [client 127.0.0.1] couldn't spawn child process: c:/program files/apache group/apache/cgi-bin/first.pl

と出ています。どなたか解決策をご存知の方が
いらっしゃいましたらよろしくお願いします。

A 回答 (7件)

エラーログを見る限りWindowsで動かそうとされているようですね。

(このような質問の場合、環境等を明記しておいたほうが正確な回答を得られます)

httpd.confの設定は正しく行っていますか?
デフォルトでは、拡張子.plはcgi実行の対象になっていません。拡張子を.cgiにするか、どうしても.plのまま実行できるようにしたければ

AddHandler cgi-script .cgi

の行を探し出し、後ろに.plを付け加えてください(その後、Apacheの再起動が必要です)。
あと、スクリプトの先頭行に

#!C:/perl/bin/perl.exe

を付けていますか?(上記はPerl.exeの存在するパスです)。
まさかPerlをインストールしてないなんてことはないですよね?

この回答への補足

ActivePerlをインストールしてcgiにも関連付けしてあります。あとスクリプトのほうも確認しましたが先頭行等は問題ありませんでした。.plを付け加えてみたり
テスト用のcgiも試しましたが同じ症状でした。ご返答の程、よろしくお願いいたします。

補足日時:2004/04/18 12:58
    • good
    • 0

#2です。



言葉足らずで失礼しました。
スクリプトにエラーがある=2行目以降のPerlスクリプトにエラーがある、でした。
#6さんのおっしゃるとおり、1行目のPerlパスに間違いがある場合子プロセスの起動エラー(couldn't spawn child process)になりますね。

質問者さんがおっしゃっておられる「スクリプトに問題はない」というのは、コマンドラインで実行した場合のことを指しておられるのだと思われます。
コマンドラインで実行すれば、1行目は注釈文に過ぎないため、Perlインタプリタは無視しますので・・・。
    • good
    • 0

>ちなみに#3さんへ。

スクリプトエラーならcouldn't spawn child processエラー
>にはなりませんから、

エラーになります。
1行目のパスに間違いがあると、以下のエラーが出力されました。

[Mon Apr 19 00:39:27 2004] [error] [client 127.0.0.1] : couldn't spawn child process: G:/Apache/Apache2/cgi-bin/printenv.pl
    • good
    • 0

#2です。



蛇足ですが、httpd.confを書き換えた後Apacheはちゃんと再起動されていますよね?
Apacheのプログラムメニューの中に「Control Apache」→「Restart」があったと思いますが、httpd.confを書き換えるたびにこのRestartを実行しないといけません。
あと、「Test configuration」を使うとhttpd.confにエラーがないかどうかをチェックしてくれますので、再起動前に一度チェックをしておきましょう。
    • good
    • 0

#2です。



ScriptAliasesの設定にもAddHandlerの設定にも問題がないとすると、Perlのパスが間違っているくらいしか可能性が考えられませんね。

C:/perl/bin/perl.exe

にperl.exeはありますか?
もしないなら、perl.exeのあるパスをスクリプトの先頭行に書くようにしてください。

これでも駄目、ということでしたらいったんApacheおよびActivePerlをアンインストールし、インストールしなおすことをお勧めします。

ちなみに#3さんへ。スクリプトエラーならcouldn't spawn child processエラーにはなりませんから、スクリプトに問題があるかどうかは現時点では問題ではないです。
    • good
    • 0

CGIに関係ありそうなhttpd.confの箇所を抜き出してみました。


こちらの環境ではCGIは問題なく動いています。


LoadModule cgi_module modules/mod_cgi.so

ScriptAlias /cgi-bin/ "G:/Apache/Apache2/cgi-bin/"

<Directory "G:/Apache/Apache2/cgi-bin">
  Options ExecCGI

AddHandler cgi-script .cgi .pl


>スクリプトのほうは確認しましたが
>問題はありませんでした。

問題ない、と判断した人は誰ですか?

この回答への補足

サポートに書いてあったものと照らし合わせたり
あるCD付きの本を購入したときについてきたときの
テストプログラムでやってみまして
間違いがないか何度も見てみました。

補足日時:2004/04/18 13:44
    • good
    • 0

質問文だけでは情報不足ですし、「サポート」が何を意味するのか、


わかりませんが、
スクリプトの1行目はどうなってますか?

ちゃんとperl.exeの場所を指定していますか?
まちがっていたら、明らかにそのエラーがでます。

#!/usr/bin/perl
#!c:/perl/perl.exe
など

この回答への補足

スクリプトのほうは確認しましたが
問題はありませんでした。ほかにもテストCGIも
やってみましたが同じようにエラーが出ます。

補足日時:2004/04/18 12:57
    • good
    • 0

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