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」の場合は何も表示されませんでした。
どこの設定・指定が間違っているのか検討がつかない状態で
手詰まり状態になってます。
原因・手がかり等分かる方、ご教授願います。
No.6ベストアンサー
- 回答日時:
.htaccessが使用できるならこれでcgiディレクトリのみを
ディレクトリ一覧非表示にできますよ。
また、.htaccessが使用できない場合は空のインデックスファイルを
置いておくとそれが優先して表示されるのでディレクトリ一覧は表示
されなくなります。
何度もアドバイスありがとうございます。
前の方の回答でDocumentRootより下位にCGIプログラムを置かなければいけないことがわかったので、
CGIプログラムの置き場所を変更して教えていただいた.htaccessまたは空のインデックスファイルを使用する方法で
検討してみます。
ありがとうございました。
No.4
- 回答日時:
> 但しこれは意図して表示させています。
> (お客の要求で表示させるという仕様になっているので・・・)
> IndexIgnoreを使用してCGIプログラムを表示させないことはできるの
> ですがCGIプログラムを1箇所にまとめておきたかったのでcgi-binを
> 使用していました。
えっと、結局どうしたいのでしょうか。
HTMLを置いているディレクトリ配下ならSSIも動作するんですよね。
なら例えばHTMLのディレクトリの下にcgiというディレクトリを
掘ってここにCGIをまとめておけばいいんじゃないでしょうか。
ディレクトリ一覧に関しては表示したいのかしたくないのかがよく
わかりません。
意図的に表示させるようにしておきながら表示したくないというのは...?
説明不足ですいません。
このサーバー上ではあるプログラムが動作していて、そのプログラムが出力したデータファイルが保存されます。
ディレクトリ一覧で表示させるのはこのプログラムが出力したデータファイルだけでCGIプログラムは見えないようにしたいのです。
(ユーザはデータファイルのみ参照できるようにしたいのです)
なのでCGIプログラムはDocumentRootで設定したディレクトリより上位の階層のcgi-binにまとめておこうとしました。
No.3
- 回答日時:
> (但しこの方法だとCGIプログラムがユーザに見えてしまうので
> cgi-binディレクトリ配下にCGIプログラムを置いて実行させたいと
> 思ってます。)
これの意味が分からないのですが、もしかしてインデックスファイルを
置いていない時にディレクトリ一覧が表示されるということでしょうか。
そういう場合は、空のindex.htmlを置いたり、ディレクトリ一覧の
表示を無効にしたりすることで回避できます。
cgi-bin以外でも動作するように設定されているなら上記の方法で
いいのではないかと思います。
現在ではcgi-binを使用する方法はあまり主流でないようです。
どこで実行しようともセキュリティ的にはあまり違いないですし、
設定的にもややこしくなりますしね。
CGIだけまとめるという点では利点がありますけど。
再度の回答ありがとうございます。
CGIプログラムがユーザに見えてしまうというのは回答の通りディレクトリ一覧が表示されています。
但しこれは意図して表示させています。
(お客の要求で表示させるという仕様になっているので・・・)
IndexIgnoreを使用してCGIプログラムを表示させないことはできるのですがCGIプログラムを1箇所にまとめておきたかったのでcgi-binを使用していました。
まだCGI関連の勉強を始めて間がないのでcgi-binを使用する方法が
主流でなくなっていることは知りませんでした。
CGIプログラムの格納方法についてはもう少し検討してみます。
また他に何か手がかり等ありましたらよろしくお願いします。
No.2
- 回答日時:
サーバなどによってはSSIではCGIが動作しないこともあるようです。
この辺りの詳細はよく知らないのですが。
あと、例えばドメインが同じであっても内部で別のサーバと
関連付けていて cgi-bin ディレクトリが別のコンピュータに
ある場合などは動作させることができないと思います。
回答ありがとうございます。
試しにCGIをindex.shtmlの1つ上の階層に置いて、そのCGIを指定した場合は動作したのでSSIからのCGI起動は動作しているようです。
(但しこの方法だとCGIプログラムがユーザに見えてしまうのでcgi-binディレクトリ配下にCGIプログラムを置いて実行させたいと思ってます。)
またcgi-binディレクトリはScriptAliasで設定はされていますが同一サーバ内のディレクトリです。
また他に何か手がかり等ありましたらよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- その他(プログラミング・Web制作) robots.txtが”allow”のサイトを探しています 2 2022/10/09 13:07
- CGI 「CGIにより定義されていない」とは・・・ ? 3 2023/01/01 12:00
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WIn32API ディレクトリ内ファイ...
-
CGI実行環境下の.jsや.cssが動...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
.cgi拡張子のままCGIファイルを...
-
ASP(IIS?)のエラーについて
-
Yomi-Search CGIですが・・・
-
実行可能な外部コマンドは?
-
FTPにて553エラー
-
CGIでソースがそのままでてしま...
-
perlからJavascriptを起動
-
FC2レンタルサーバーライトでの...
-
クライアントサイドとサーバー...
-
VBScriptで、ファイルから任意...
-
「EJBとServletの違い」「J2SE...
-
FC2にwebPatio設置の方法
-
初心者のCGI設置方法
-
BBS掲示板でのhtmlとcgiの関係...
-
自作CGIで、wwwサーバーエラ...
-
hp 送信する情報を・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CGIが読み書きするデータファイ...
-
.htaccessを2つ以上設置した場合
-
FFFTPでアップロードできない?
-
CGI実行環境下の.jsや.cssが動...
-
WIn32API ディレクトリ内ファイ...
-
イントラネットのwebページのア...
-
JavaScriptdeファ...
-
CSVファイルのパーミッションは?
-
Apacheのcgi-bin
-
なぜフォルダ名がcgi-binなの?
-
階層を変えると動作しないです。
-
mimeの取得方法
-
CGIでjcode.plを読み込めなくな...
-
Cで作ったexeファイルをCGIとし...
-
SSIの日付の文字化けの対処方法...
-
AutoRinkの設定。
-
ディレクトリを指定してディレ...
-
CGI 設置方法
-
Rubyで特定のディレクトリ以下...
-
Borland C++ Compiler のセット...
おすすめ情報