• ベストアンサー

SSIでのエラーについて

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

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

[an error occurred while processing this directive] は特定のエラーを示しているのではなく「何らかのエラーでSSIが実行不能」という意味です。 これだけの情報ではお答えすることは無理です。 ・.htaccessの設定 ・ssiファイル(perlの方)のパーミッション ・ログファイルの内容 ・httpd.confの設定(SSIに直接関係するもの) これらを見てエラーの原因を究明します。

その他の回答 (1)

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

サーバはSSIが使用できるようになっていますよね? では、SSIとみなされるファイルタイプは何でしょう? 質問を読んだかぎりでは、htmlファイルで実行させようとされているようですが、 一般的には(?)拡張子はshtmlです。 HTMLファイルで動作させようとすると、設定を変える必要があります。 html→shtmlにファイルタイプを変えられる時は、純粋に拡張子だけを変えればOKですよ。

関連するQ&A

  • ApacheをまたがるSSIの利用方法

    よろしくお願いします。 SSIをHTMLから読み出す際タグ内に exec cgi="/フルパス/cgi-bin/test.cgi" のように記述し、ブラウザから開くと、 [an error occurred while processing this directive] と出ます。 これは、パスが間違えていることが原因と思われます。 環境が特殊で、 apacheをSSL用((1))と非SSL用((2))に二つ、同じサーバ内に立ち上げています。 (2)のHTMLから、フルパスで(1)のCGIをキックすることは可能でしょうか? それともapacheをまたがってSSIからCGIをキックするのは無理なのでしょうか? ご回答、どうかおねがいいたします。

    • ベストアンサー
    • Perl
  • SSIを使ってHTMLページにCGIを埋め込みたい

    使っているサーバーがSSIが使えるとの事で今回初めてSSIを使ってHTMLページにCGIを埋め込みたいと思い、色々なページを見ながら設置してはみてるんですが、 [an error occurred while processing this directive] となってしまいます。 やってみた事は test.shtmlを作り<BODY></BODY>の中に <!--#exec cgi="/navi/can.cgi"--> などとしてみたりしましたが上記のエラーが出てしまいます・・ 初歩的な質問なのかもしれませんが何が間違えているのかもわからなく、すみませんが教えていただけないでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • SSIを使ってCGIを呼び起こしたいのですが

    index.shtmlのタグにssiを使用したいのですが index.cgi?mode=m のようなパラメータもつけて実行させる場合 <!--#exec cgi="./index.cgi?mode=m"> ではだめなんでしょうか? [an error occurred while processing this directive] というエラーがでました。 どうかご教授ください。

    • ベストアンサー
    • CGI
  • SSI で #exec 以外で Perl-CGI を実行する方法は?

    最近 CGI に興味をもち Perl を始めました。 簡単なサンプルを無料サーバーにアップロードして cgi だけを 直接実行すると問題なく実行されます。 ですが SSI の #exec を使って HTML ソースに <!--#exec cgi="/cgi-bin/sample.cgi" --> と記述してページを開くと [an error occurred while processing this directive] と表示されてエラーになりました。 無料サーバーは infoseek で CGI/SSI は使えると書かれていたので 試してみました。それでもう一度確認の為に読んで見ると『#exec』は セキュリティ強化のため利用できないことが判明しました。 http://help.www.infoseek.co.jp/isweb/20602.html#7 質問内容: (1)CGI/SSI は使えるが #exec は使えない状況でどうやって Perl-CGI を   HTML ソースに記述して実行すればよいのか? (2)CGI は cgi-bin に置きパーミッションを 755 に設定しています。   設定は infoseek さんの指示通りです。他に設定すべき点ありますか? (3)Perl-CGI の1行目ではちゃんと『#!/usr/local/bin/perl』と記述しています。   こちらも infoseek さんの指示通りです。   Perl の記述で何か気をつけるべき点はありますか?バグ以外で。 (4)HTML ソースの拡張子は shtml にしています。   SSI を使うにはサーバーが対応していれば拡張子を変えるだけで使えるのですか? 今回の質問は Perl-CGI を HTML ソースに記述して実行する?には どうすべきかをお聞きしたいです。infoseek さんの情報は次のリンクです。 http://help.www.infoseek.co.jp/isweb/20601.html またネット検索していたら次のページを発見しました。 http://cocohome.hp.infoseek.co.jp/ssi/ ここの人は私と同じ infoseek で SSI 入門を書いています。 なぜこの方は SSI の #exec が使えるのでしょうか? この辺も知りたいです。 分かる方お願いします。 教えて下さい。

    • ベストアンサー
    • CGI
  • ssi設置について

    「予約状況カレンダー」というフリーのcgiをDLして動かすまではできましたが、同じものをssiで動かそうとしたら[an error occurred while processing this directive]というメッセージがでます。 HTMLソースの中に<!--#include virtual="(URL)"-->を埋め込んで名前を.shtmlにしました。サーバーはロリポップです。 ここのマニュアル【■実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ません。 ■上位ディレクトリを参照すると動作出来ません。 実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますようお願い申し上げます。】がよくわからない初心者ですが、どなたか初心者でも分かるような説明をしてくださいませんか?

    • 締切済み
    • CGI
  • 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
  • ???アクセスカウンター???

    僕は、トクトク(http://tok2.com)というところで、HPを公開しています。もちろん、CGIは使えます。 しかし、レスキューというサイト(http://www.rescue.ne.jp/)でカウンタ機能付きログアナライザ(アクセスデータ解析)を使ってみたんですけど、 [an error occurred while processing this directive] と出てしまって、取り付けられません。だれか、教えてください。

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

    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からCGIを起動について他の方の過去の質問を参照させて頂いたのですが解決できず困っております。 index.shtml内からSSIを使用して <!--exec cgi="/cgi-bin/test.cgi"--> と記述してCGIを実行したところ [an error occurred while processing this directive] と表示され実行できませんでした。 エラーログを見たら invalid CGI ref "/cgi-bin/test.cgi" と表示されていました。 試しに「http://ホスト名/cgi-bin/test.cgi」とアドレスに記入して 実行した場合は正常に実行されました。 (「cgi-bin」はhttpd.conf内でScriptAliasで設定してます) またSSIが正常に起動しているかの確認として <!--echo var="DATE_LOCAL"--> を実行してみたところ正常に時刻が表示されました。 「include virtual」も試しましたが結果は同じでした。 「exec cmd」の場合は何も表示されませんでした。 どこの設定・指定が間違っているのか検討がつかない状態で 手詰まり状態になってます。 原因・手がかり等分かる方、ご教授願います。

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