この人頭いいなと思ったエピソード

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”
と記録されていました。
どうしたらよいのでしょうか。
どなたか解決できるかた、回答よろしくおねがいします。

A 回答 (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" が入っています。

この回答への補足

さっそくやってみたのですが、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
とでてしまいました。どこが悪いのかわかりません。もしご存知でしたらよろしくお願いします。

補足日時:2010/10/04 23:20
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/10/04 23:14

C:/Program Files/ということはWindowsですね


Windowsならexec cmdは使えないと思ったほうがいいです
exec cgiやinclude virtualではだめでしょうか

この回答への補足

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

補足日時:2010/09/04 22:31
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/09/04 22:39

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