• 締切済み

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

  • CGI
  • 回答数2
  • ありがとう数20

みんなの回答

  • 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

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

    Apache2.2でPerlを呼び出すSSIを使ったHTMLをlocalhostで動かそうとしています。 exec cmdをHTMLファイルに埋め込みました。インターネットのApacheでSSIを使う方法を読み,httpd.confの中に Options FollowSymLinks Multiviews の後にIncludesをつけ 念のため Options Indexes FollowSymlinks の後にもMultiviews Includes をつけ   AddType text/html .shtml と AddHandler server-parsed .shtml を加えました。しかし、localhostで実行するとHTMLのSSIの部分だけ表示されません。 (アクセスカウンターのカウンターだけ表示されません)。どうしたらよいのでしょうか。 どなたか解決できるかた、回答よろしくお願いします。

  • Apach2でSSIコマンドが実行出来ないのですが教えてください

    環境は、自宅サーバ、WindouwsXP、Apache/2.0.53 (Win32) PHP/4.3.10 mod_jk2/2.0.2です。 [httpd.conf SSI関連設定] AddType application/x-server-parsed .shtml AddHandler server-parsed .shtml AddHandler cgi-script .cgi .pl .bat [SHTMLファイル] <HTML><HEAD><TITLE>counttest</TITLE></HEAD><BODY> あなたは<!--#exec cmd="countlog/count.pl" -->人目のお客様です。 </BODY></HTML> [count.plファイル] #!c:/perl/bin/perl $file="C:/ProgramFiles/Apachegroup/Apache2/htdocs /nandemokan/countlog/numfile"; open(FILE, "<$file"); #人数ファイルを読んで 以下省略 http://localhost/nandemokan/index.shtml [SHTML実行結果] あなたは人目のお客様です。 http://localhost/nandemokan/countlog/count.pl [直接SSIを指定した結果] Internal Server Error なお、コマンドプロンプトからcount.plを実行すると 正常にカウンタが出力されます。 ANHTTPDではうまくいったのですが、Apache2で出来なくて困っています。よろしくお願いします。

    • ベストアンサー
    • CGI
  • Apacheをlocalhostで動かしているのですが、Perlの引数

    Apacheをlocalhostで動かしているのですが、Perlの引数のないものやCGIはうまく動くのですが (設定はインターネットのサイトで調べました。)、exec cmd で Perlを呼び出すタグの入った Htmlを動かそうとしたら、Internal Server Errorになってしまいました。exec cmdの入って いないHtmlでもInternal Server Errorになってしまいました。ApacheではHtmlは動かせないの でしょうか、それとも設定がどこか問題があるのでしょうか。どなたかご存知の方よろしかったら 教えてください。ここのカテゴリーでよいのか悩みましたが、とりあえずよろしくお願いします。

  • Apache 2.0 で SSI cmdが動かない

    同じ質問で http://okwave.jp/qa/q451501.html これと同じですが、未だ解決していないようなので。先に上記を見て下さい。 SSI の機能は ファイルアクセス表示などのコマンドが実行できているので、動作しています。 <!--#exec cmd="test.cgi" --> でエラーログが下記です。 execution failure for parameter "cmd" to tag exec in file.......shtml cmdの実効に失敗した。 test.cgi はDOSのbat で動作、及びHTMLのhead等のタグをプリントで入れれば 正常動作しています。 先人の質問でやり取りは一通りやっています。LoadModule等も #exec cmd がどうしても機能しないと思えますが 宜しく御願いします。

    • 締切済み
    • CGI
  • Apacheをlocalhostで動かしているのですが、Perlの引数

    Apacheをlocalhostで動かしているのですが、Perlの引数のないものやCGIはうまく動くのですが (設定はインターネットのサイトで調べました。)、exec cmd で Perlを呼び出すタグの入った Htmlを動かそうとしたら、Internal Server Errorになってしまいました。exec cmdの入って いないHtmlでもInternal Server Errorになってしまいました。ApacheではHtmlは動かせないの でしょうか、それとも設定がどこか問題があるのでしょうか。どなたかご存知の方よろしかったら 教えてください。よろしくお願いします。質問がここのカテゴリーでよかったのかわかりませんでした が、サーバーと書いてあったのでここに投稿しました。間違ってたらすいません。

  • SSIでのエラーについて

    こんばんわ。 RedHat7.2で、Perlで、CGIの勉強をしはじめましたが、 SSIが どうもうまくいきません。 CGIならうまくいくのですが、HTMLからSSIでCGIを実行しようと するとうまくいきません。 Apacheで練習しているのですが、Apacheの設定が悪いのか、ほかに 重大なミスをしてるのかわかりません。 HTMLの中に #exec cgi を入れてみたんですが、 ブラウザにはその部分が [an error occurred while processing this directive] と表示されるだけなんです。 ごくごく簡単なカウンターなんですが。。。 SSIにおいて、これだけは必ずしなければだめ、というのが あれば教えていただきたいのですが。。。 よろしくお願いいたします。

  • ローカルパソコンで、CGI(SSI)及びカウンタの動きを確認したいのですが…。

    翔泳社のPerl/CGI辞典を購入し、それを参考にPerlとApacheをインストールし直してみました。 以前から、少しCGIは使っていたため、Perl『ActivePerl-5.6.1.635-MSWin32-x86』とApache『apache_1.3.28-win32-x86-no_src』それにhttp://www.st.rim.or.jp/~nakata/の『AN HTTP Server』バージョン1.42kを入れていました。 それをPerl『ActivePerl-5.8.3.809-MSWin32-x86』にし、Apacheはそのままのバージョンで、『httpd.conf』の設定を行ないました。 Options Indexes FollowSymLinks MultiViews ExecCGI Includes とし、 AddHandler cgi-script .cgi AddType text/html .shtml AddHandler server-parsed .shtml の#もはずしました。 しかし、SSIが動きません。CGIは動くのですが、これは何故なのでしょうか? 画面上にHello!と表示させる簡単なプログラムです。 Apacheを起動させ、実行するのですが、画面上に何も表示されません。 Apacheを終了させ、『AN HTTP Server』で、同じ物を動かせば、ちゃんと動きます。 これらについて詳しい方、ぜひアドバイスをお願い致します。 そして、もう一つ疑問があるのですが、『AN HTTP Server』のほうで、カウンタの動作を確認してみました。 スクリプトは、『http://www2j.biglobe.ne.jp/~apollo/』さんの『お好みカウンタ』を借りて、試してみたのですか、カウンタの数字が『error』表示になったり、00000のまま動かないのです。 また、Apacheのほうでも試してみたところこちらでは、画像(数字)が『×』となってしまいます。 『AN HTTP Server』では動いているようですが、ちゃんとした動作にはなりません。 ローカルパソコンでは、限界があるということなのでしょうか? 長くなってしまい、かつわかりにくい文章だと思いますが、随時補足しますので、上記の2点についてアドバイスをよろしくお願い致します。

  • Apache, httpd.conf設定 - .htmlでphp/ssi共に使えるようにするには?

    いつもありがとうございます。 Apacheの設定に詳しい方に質問です。 拡張子.htmlでphp使えるようにhttpd.confまたは.htaccessに記述するヤツありますよね。あのやり方は知ってるのですが、いままでうちでそれをやると.htmlファイルがダウンロードされてしまうという現象があったのですが、今日ようやくその原因がわかりました。ssiの記述とカブってるとダメなのですね。 AddHandler server-parsed .shtml .html AddType application/x-httpd-php .html と書くとうまく動きません。ssiは動くけど、phpはダメです。 それでその回避策として以下のように書くというのを教わりました。 AddHandler server-parsed .shtml .html AddType application/x-httpd-php .htm すると、 .html -> ssi .htm -> php という風に確かに動くんですが、これではちょっと困る。 既にサーバ内のあちこちで.htmlにてssiを多用してしまっているのです。 そこで質問なのですが、ssi&php共に、.htmlで動く方法はあるんでしょうか? 環境:Fedore Core 4 + Apache2.0.54 + PHP Version 5.0.4 よろしくお願いします。

  • PHP+SSI

    「index.php?a=100」のようなページをSSI(ssi.shtml) から実行したいと考えています。 ところがssi.shtml内で <!--#exec cmd="index.php 100"--> とし index.php内で引数渡しの設定として「$argv[0]」として ますが、ssi.shtmlを実行しても実行結果を返さずブランクに なってしまいます。index.phpのパーミッションも実行可能に 設定しているのですが…。  上記以外の方法でも結構ですので、SSIで引数付きのPHPを 実行する方法をご存じの方がいらっしゃいましたら、教えて ください。 Apache 1.3.31+PHP 4.3.1で動いています。もちろんSSIで #execがNGなんてオチも有りません。 なお、下記URLによればSSIからの引数渡し自体はCGIだと可能の ようですが…。 http://tohoho.wakusei.ne.jp/wwwssi.htm#Exec

    • 締切済み
    • PHP
  • ローカルサーバーでの動作確認

    CGI超初心者です. 翔泳社のPERL/CGI辞典を見ながらCGIに挑戦してます. 今ローカルサーバーでの動作確認すべく奮闘しているのですがCGI/SSIを使用するためのAPACHEの設定で頭を悩ませてます. CGIはうまく表示できたのですがどうしてもSSIが表示されないのです. ファイルは本通りに記述したつもりです. 「test.shtml」 <HTML> <BODY> <!--#exec cmd="test.pl" --> </BODY> </HTML> 「test.pl」 #!C:\perl\bin\perl print"hello!"; CGI/SSIはドキュメントルートで制限なく使用できるよう設定しました. test.shtmlは表示されてるようなんですがそこにtest.plが読み込めてないようです(よく分かりませんが…) どこが悪いのか全く分かりません. ブラウザ上でこのtest.shtmlのソースを確認したら<!--#exec cmd="test.pl" -->の部分が表示されてませんでした. 全くの初心者でどのような情報を開示すればよいのか分からないので必要な情報があれば教えていただけるとありがたいです.

    • ベストアンサー
    • CGI

専門家に質問してみよう