• ベストアンサー

execを使ってCGIを呼び出すには?

execを使ってCGIを呼び出したいのですが、どうやっても表示されません。 CGI自体を開くと、しっかりと表示されるのですが、shtmlで開くと、htmlの表示だけしか出ないのです。 たくさん調べたのですが、もうお手上げです。 もしわかる方がいましたら教えてください。 よろしくお願いします。 初心者ですので、お手柔らかに。

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

  • ベストアンサー
回答No.1

Webサーバー側の設定に Apacheで言う IncludesNOEXEC に相当するものが設定されていないですか? もし、.htaccessによる設定の変更が許可されているなら、WebサーバーにApacheを使っていれば Options -IncludesNOEXEC + Includes のようにすれば良いと思います。 .htaccessでの設定変更ができないなら、SSIの中からCGIを呼ぶのは不可能ですね。 あるいは、自分が管理しているWebサーバーだったらIncludesNOEXECに相当する設定をしていないか確認してみてください。 他人が管理しているものでも.htaccessでその設定を変更できるか試してみましょう。 どちらもダメなら、SSIからCGIを呼び出すことはできません。

INAMATU
質問者

補足

hanabutakoさん 回答、ありがとうございます。 どうやら、ローカルでやっている段階のため、表示されないようです。 これでは、いくら、どこをいじっても無理ですよね。 勉強中なので、今後はもっと勉強いていきたいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • #exec cgi="**.cgi"をCGIページで表示する

    #exec cgi="**.cgi" を使って、全ページが同じように表示されるようにしたのですが、 掲示板等のCGIページではなぜか表示されず、ソースを見てみると <!--#exec cgi="**.cgi"--> がそのまま表示され、ただコメントとして扱われていました。 普通のHTMLファイルと同じように CGIでも**.cgiファイルを表示したいのですが、どうすればいいのでしょうか よろしくお願いします。

    • ベストアンサー
    • Perl
  • SSIの『#exec cmd』と『#exec cgi』の違いがよくわかりません

    SSI初心者の者です。 参考書(CGIプログラミング入門/翔泳社)を見ながらCGIとSSIの勉強をしてるのですが、SSIの『#exec cmd』と『#exec cgi』の違いがよくわかりません。 本には前者はPerlスクリプトで後者はCGIスクリプトの場合に使うって書いてあるのですが、この2つってどう違うのですか? 前後の文脈から察するにCGIスクリプトは『print "Content-Type: text/html"』があって、 Perlスクリプトはこれが無いものと読み取れるのですが そうなのでしょうか? 初心者向けに御回答していただけますよう、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 「 <!--#exec cgi="***.cgi" --> 」が表示されません

    「main.cgi」というファイルを作り、単純にHTMLを表示するだけのCGIファイルを作成しました。 こんな感じ ------------main.cgi------------ #!/usr/local/bin/perl print "Content-type:text/html\n\n"; print <<EOM; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title></title> </head> <body> <略> </body> </html> EOM __END__ -------------------------------- それで、ほかのHTMLファイルに <!--#exec cgi="main.cgi" --> と入力してそのページを見てみると、 [an error occurred while processing this directive] 上の文章が表示されていました。 どうすれば「main.cgi」の内容を表示することができるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • 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
  • exec cgi ="aaa.cgi" を有効にする方法

    <!--#exec cgi="./aaa.cgi" --> を記述したshtmファイルからcgi を呼び出そうとすると スクリプト './test6.cgi' を実行できませんでした: Win32 エラー コード = 2 と表示されて実行できません。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpiis/iishelp/iis/htm/core/iiregwww.asp を参考に、レジストリを書き換えても出来ません。 どう設定すれば実行できるようになるのでしょうか? IIS5.0(w2000pro) + ActivePerl

    • ベストアンサー
    • CGI
  • shtmlに埋め込むCGIファイルのDLについて

    shtmlファイル内に埋め込んだ<!--"exec cmd="./***.cgi"-->なんですが、 正常に実行されれば、この場所には実行結果しか返りませんが、 DLツールやその他行為で、SHTMLファイルをSSIの実行なしに落とすことはできりでしょうか? 要は、shtml内に埋め込んだ「***.cgi」などのファイル名を取得されないか、 という不安があるのです。

    • ベストアンサー
    • CGI
  • リンク元を調べるCGIの作り方で悩んでいます

    はじめまして。Perl暦1ヶ月の者です。 自分のサイトのリンク元を調べるCGIを設置しようと思いますがどんな方法があるでしょうか。 私が調べた方法は、 1.CGI+SSIを利用 2.CGI+インラインフレームを利用 ですが、1.は各ページに <!--#exec cgi="○○.cgi"--> を入れてCGIを起動させるわけですが、全ページが.shtmlとなってしまい抵抗を感じます。.htm → .shtmlと変わることにより当分検索順位が下がるかもしれません。 それで2.を試しました。通常ページ page1.htm にインラインフレームで○○.cgiを埋め込み、ここでカウンターを表示させるとともにログを取得しようと思ったのです。しかしHTTP_REFERERが取得してくれるリンク元はあくまで「page1.htm」ですので役に立ちません。 最も一般的な方法はどのようなものでしょう?詳しい方よろしくお願いいたします。m(_"_)m *できればコードを丸ごと教えていただけると助かります。 ↓作成の条件です↓ ・一般ページはあくまで.htm にしたい。 ・レンタルサーバー屋はSSIは.shtmlと言っている。 ・リンク元一覧は一般ページには表示しない。 ・全ページの外部リンク元を知りたい。

    • ベストアンサー
    • Perl
  • ssi をたくさん使っても大丈夫?

    index.shtml でたとえば100くらい<!--#exec 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
  • <!--#exec cmdについて

    みなさん はじめまして 本日はよろしくお願い致します 現在、HPを持ってましてページ内に ランダムリンクを貼っております コマンドは以下のようにしております <!--#exec cmd="./random.cgi"--> もちろん、random.cgiの中には リンクするURLを何個か書いていて、 同じフォルダに放り込んでいます。 ちょっと問題がありまして。。 えと、HPを何個も持っていまして 全HPの各フォルダにrandom.cgiを入れているのですが 更新の時などが非常に、厄介なんです^^; HPを追加した時など、全フォルダの random.cgiを更新してUPする事に・・ そこで、1つ上の階層にフォルダを作り そこにrandom.cgiを放り込んで そこを変更すれば全部変わるようにしたいのです 現在、同じフォルダにいれてますので <!--#exec cmd="./random.cgi"-->でいいのですが 違うフォルダにrandom.cgiを入れた場合 <!--#exec cmd="/home/アカウント/public_html/random.cgi"--> このようなパスで動くと思ったのですが 動きませんでした・・・^^; もちろん、random.cgiの場所をhttp://でも書いてみたのですがダメでした。。 これは、動かないモノなのでしょうか もし、ご存知の方がいらっしゃいましたら なにぶん、よろしくお願い致しますm(_ _)m PS /home/アカウント/public_html これは、今使ってるサーバー屋さんの決まってる パスの書き方です。

    • ベストアンサー
    • CGI