• 締切済み

SSIが認識されない

こんにちは。 アクセスカウンターを設置したいのですが、HTML文にタグを埋め込んでも認識してくれません。 ちなみに以下のように書いています。 <!--#exec cmd="./counter.pl"--> <!--#include virtual="./counter.cgi"--> わたしのプロバイダはexecが使用不可なので、include用にプログラムを書き換えているのですが、counter.plもcounter.cgiも文法チェックでは特に問題は発見されません。 counter.cgiに直接アクセスするとちゃんと動いているので、プログラムの問題ではないような気がします。 フリーで配られているカウンターでやってみてもダメでした。 HTMLの問題なのでしょうか? それともブラウザー? どなたかわかる方がいらっしゃいましたら、助けてください!! お願いいたします。

  • CGI
  • 回答数1
  • ありがとう数3

みんなの回答

  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.1

うーむ。 考えられるのは2つかな? (1)まず、 .html の拡張子を .shtml としてみる。 これでも動かなければ、 (2)「.htaccess」というファイルに AddType text/x-server-parsed-html .shtml text/x-server-parsed-html .shtml/ text/x-server-parsed-html .html text/x-server-parsed-html .html/ という記述をしてアップする しかし.htaccessが使用出来る必要があります。 まぁ、CGIに比べてSSIの使用は、環境によって多少、使用方法が変わるので、 領域をレンタルしているところの質問掲示板に投稿するとか、 管理人などにメールするなりして聞くのが一番安全です。

chicchi
質問者

お礼

すみませ~ん。 解決しました~。 わたしいつも質問してから、自己解決してしまうんです。 ホントに申しわけございません。 結論を申しあげますと、自分のPCでチェックすると認識しないのですが、サーバにアップしたらOKでした。 こんな初歩的な結果となってしまい、ホントにすみません。 自分のPCにapacheを入れていて、いつもCGIは自分のPCでチェックしてるのです。 自分のPCでダメだったので、プロバイダでもだめだろうと思ってしまいました。 ご親切な解説ありがとうございました。

関連するQ&A

  • 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
  • CGIにSSIカウンタをつけたい

    掲示板や日記帳などのCGIに、別途ダウンロードしたSSIのテキストカウンタを表示させようとしたところ、ローカル・Web共に表示されませんでした。 表示する為の記述は「<!--#include virtual="仮想パス"-->」で、HTMLファイルに記述した場合は問題なく表示・動作しました。 HTMLファイルで表示・動作しましたし、CGI・SSI・「.htaccess」ファイルなどの設定はおそらく問題ありません。 SSIのテキストカウンタは「The Room」というサイトの「Text Day Counter Ver.1.10 SSI版」を使用しています。 CGIは「掲示板や日記帳など」と言いましたが、まだ検討段階で特定のCGIはなく、色々なCGIで試しています。 ※特定のものだけではなく、テキストカウンタを表示したいと思うCGIにつけたいのです。 CGIの記述は (1) print "<!--#include virtual=\"仮想パス\"-->\n" ; (2) print '<!--#include virtual="仮想パス"-->\n' ; (3) print "<!--#include virtual='仮想パス'-->\n" ; (4) print <<"EOM"; <!--#include virtual="仮想パス"--> EOM と4通り試しましたが、どれも動作しませんでした。 SSIのテキストカウンタのパスが「http://xxx.yyy.zzz/aaa/bbb/ccc/txtdayc1.cgi」だとしたら、仮想パスは「/aaa/bbb/ccc/txtdayc1.cgi」のようなので、そう記述しましたが動作しませんでした。 CGIと同じディレクトリに置いているので、記述を「<!--#include virtual="./txtdayc1.cgi"-->」に変えたところ、HTMLファイルでは動作しました。 なぜSSIのテキストカウンタがCGIで表示されないのか、アドバイスをお願いできないでしょうか? また、「<!--#include virtual="仮想パス"-->」を「<!--#include virtual="CGIファイル名"-->」または「<!--#include virtual="フルパス"-->」のように記述しても問題ないのかも教えて頂けると助かります。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • 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
  • SSIが認識されません。誰か解かりませんか?

    SSIが上手く認識されません。 shtmlの書き方がおかしいのでしょうか? shtmlは、/public_html/cgi-bin/○○.shtmlに入っています。 インターネットエクスプローラーでアドレスを入力すると表示されます。但し、cssが認識されていません。 htmlの中には、 <!--#exec cmd="http://○○○.com/cgi-bin/○○.shtml"-->と入力しています。 ソフトはビルダーです。 shtmlは、必要な分しか入力していません。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <STRONG ○○・・・ ・ ・ ・ </TBODY> </TABLE> </DIV> </DIV> で終わっています。 アクセス権限は755に変更しています。 サバーにアップしてもshtmlの部分が認識されないのは何故ですか? 宜しく、お願いします。

  • SSI で引数をCGIに渡したいのですが、

    SSI で引数をCGIに渡したいのですが、 HTMLの記述を <h1>1行目<!--#exec cmd="./emoji.cgi 0"-->絵文字1行目分。</h1> <h1>2行目<!--#exec cmd="./emoji.cgi? 1"-->絵文字2行目分。</h1> <h1>3行目<!--#exec cmd="./emoji.cgi?2"-->絵文字3行目分。</h1> <h1>4行目<!--#include virtual="./emoji.cgi 3"-->絵文字4行目分。</h1> <h1>5行目<!--#include virtual="test.cgi? 4"-->絵文字5行目分。</h1> <h1>6行目<!--#include virtual="test.cgi?5"-->絵文字6行目分。</h1> として、CGI で $ARGV[0] で使いたいのですが、出力するとSSI部分に [an error occurred while processing this directive] と、ERROEが出力されて、上手く行きません。 ネットで調べてみるとApache バージョンのによってバグが有る様な内容も有りますし、 ASJホスティングサービスのページを見ると ------------------------------------------------------------------------------------------- コマンドライン引数を渡すSSI のご利用はいただけません。 こちらは、suExec ではなくApache の一般的なセキュリティ仕様となっております。 ------------------------------------------------------------------------------------------- と書いてあったりします。サーバーの設定の問題なのでしょうか? サーバーは PC DEPOT系のネットプラッツ、専用サーバー(2万2000円/月・結構無理して払っています)です。 中は、Apache バージョン 1.3.12 ・レッドハット6.2、と聞きました。 ネットプラッツの電話サーポートの方に訪ねたのですが、 「使えるか、使えないか、そこまでのサポートは出来ない」との事でした。 サポートの方はとても親切なのですが、肝心の事が「サポートできません」って事なので サーポートというよりカウンセリング状態で・・・問題が解決できません。 サーバーの設定方法 または 記述方法が有りましたら教えて頂けないでしょうか? 宜しくお願いします。

    • ベストアンサー
    • CGI
  • PerlでHTMLを読み込み記述されたSSIコマンド(exec)の実行を実現するには。

    HTMLファイルを読み込んで表示するCGIを作っています。 それで、そのHTMLファイルに記述されたSSIコマンドを、 そのCGIで認識して、それを実行する。ということを実現したいと思っています。 includeコマンドは簡単に実現ができたのですが、 execコマンドが完全には実現できません・・・。 一応、openのパイプを使って、 <!--#exec cmd="test.cgi" --> のようなコマンドを認識しそれを実行して返すことはできました。 しかし、test.cgi?a=wのように パラメータをつけての実行が実現できません。 もちろん、SSIと同じように、 execコマンドで実行する先のCGI、プログラムなどを 改変することなくそのまま実行できることが条件です。 (例えば、$ENV{'QUERY_STRING'}ではなくARGVを使うようにするのではダメなんです) お知恵をお貸しいただけると幸いです。 どうかよろしく御願いいたします。

    • ベストアンサー
    • Perl
  • ssiのexecコマンドの代替は「<img src=~」でOK?

    近日中にサーバの移転を考えております。 現在使用しているサーバは、SSIのEXECコマンドをが使用可能なので、htmlページ中に埋め込んで使用しています。 ですが、移転を考えているサーバはセキュリティーの問題からEXECを使用禁止にしています。 いろいろと調べてみると、「<img src=~」で代替可能なような記載をみたのですが、基本的に問題はないですか? ◆ <!--#exec cmd="~" --> ◆ <!--#exec cgi="~" --> 例えば<!--#exec cgi="./abs/hoge.cgi" -->を<img src="./abs/hoge.cgi">としても問題ないでしょうか? 一応、imgタグを使用した方法でもテストしてみましたが、動作していたように思います。 今後execの使用をする、CGIやPHPプログラムをサイトに取り入れる場合は、SSIのexecコマンドを使用せずに、imgタグで代用ができるようであれば、新サーバへの移転を使用と思っています。 専門の方からみて、execコマンドが使用できないサーバは、今後の事を考えると控えた方が良いでしょうか? execコマンドの代用として、別のコマンドがあるのであれば、お教え下さい。 execコマンド利用可能なサーバから、利用不可のサーバへと移転を検討しているため、アドバイスを頂けると助かります。 よろしく御願いします。

    • 締切済み
    • PHP
  • カウンター設置について

    http://happy.honesto.net/cgi/ にあるdaycounter(SSI)をDLしてtok2で設置を試みたのですが、 どうもうまくいきません。  アクセス総数:<!--#exec cmd="./count.cgi total"--><br> 本日のアクセス数:<!--#exec cmd="./count.cgi today"--><br> 昨日のアクセス数:<!--#exec cmd="./count.cgi yesterday"--><br> としてみたのですが、何も表示されません。 また、exec cgiや、include virtualを使ったら、 [an error occurred while processing this directive] とでてしまいました。 どうしたらいいのでしょうか? tok2ではSSIを使用できると書かれていたのですが・・・・ ちなみにパーミッションはtok2推奨の、 ディレクトリ:lock・・・701 count.cgi・・・700 count.dat・・・600 としました。 どなたか設置方法を教えてください。

    • 締切済み
    • CGI
  • SSIを呼び出した元ファイルの名前を取得することはできますか?

    アクセスログを取るだけの単純なCGIを作って動かしています。 SSIを使って.plファイルを呼び出してログにホスト名やリンク元、ブラウザ名を記録しています。 最近、掲示板にスパムが増えたのでそのログも一緒に取ろうと思うのですが、ログにアクセスされたページも記録したいと思います。 <!--#exec cmd="./CGI/real_log.pl?1"--> のようにして$ENV{'QUERY_STRING'}で識別番号を取って記録することもできると思いますが、いたずらに備えてこれを使わずにできればと思っています。環境変数にはそれらしいものがないのですが、何か他に良い方法はあるでしょうか?

    • ベストアンサー
    • CGI
  • 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