• 締切済み

Apache2.2でPerlを呼び出すSSIを使ったHTMLをloca

Apache2.2でPerlを呼び出すSSIを使ったHTMLをlocalhostで動かそうとしています。 AddHandler cgi-script .cgi .plに変更。 exec cmdをHTMLファイルに埋め込みました。 <!--#exec cmd="/PROGRA~1/APACHE~1/Apache2.2/cgi-bin/counter.pl counter"--> インターネットのApacheでSSIを使う方法を読み,httpd.confの中に Options FollowSymLinks Multiviews の後にIncludesをつけ   AddType text/html .shtml と   AddHandler server-parsed .shtml を加えました。しかし、localhostで実行するとHTMLのSSIの部分だけ表示されません。 (アクセスカウンターのカウンターだけ表示されません)。エラーログには ”指定されたファイルが見つかりません。 : don't know how to spawn cmd child process: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/counter.shtml” と記録されていました。 どうしたらよいのでしょうか。 どなたか解決できるかた、回答よろしくおねがいします。

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

引数の受け取りは、include virtualではブラウザurl欄で入力するときに書くquery と同じように書けば、$ENV{'QUERY_STRING'} で受け取れますよ。 include virtual="xsample.cgi?a=c" となっていれば、"a=c" が$ENV{'QUERY_STRING'} に入っています。 元のページのquery 情報 たとえば ex.shtml?xx=yy のurlならば $ENV{'QUERY_STRING_UNESCAPED'}に"xx=yy" が入っています。

redjoker34
質問者

お礼

レスありがとうございました。お礼がおそくなってすいませんでした。忙しかったもので。

redjoker34
質問者

補足

さっそくやってみたのですが、an error occurred while processing this directiveが カウンターが出るべきところに表示され、エラーログをみると malformed header from script. Bad header=22: counter.pl unable to include "/cgi-bin/counter.pl?countername=counter" in parsed file C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/counter.shtml とでてしまいました。どこが悪いのかわかりません。もしご存知でしたらよろしくお願いします。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

C:/Program Files/ということはWindowsですね Windowsならexec cmdは使えないと思ったほうがいいです exec cgiやinclude virtualではだめでしょうか

redjoker34
質問者

お礼

レス本当にありがとうございました。補足の回答もできればお願いします。

redjoker34
質問者

補足

レスありがとうございました。引数のないcgiではうまくいきました。counter.pl counterと 引数のある場合はcgiではどうすればよろしいのでしょうか。ご存知でしたら教えてください。 よろしくお願いします。

関連するQ&A