- ベストアンサー
FrontPageで自動作成されたCGI?
契約中のサーバの注意書きに『FrontPageなどで自動作成されたCGIは動きません。またホームページ作成ソフトに付属されたCGIなども同様に動きません』とあるのですが,Web上で配布されているCGIでもその様に作られたものはあるのでしょうか? また配布されている場合,FrontPageで作られているか否かというのはどこで判定したらよいのでしょうか? ※FrontPageがどの様なソフトなのか全く知りません。見当違いの質問でしたら申し訳ありません・・・・
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>今すでに別のCGIを設置しているのですが,ディレクトリを変更するとこのCGIが動かなくなります。 CGIで新しいのを利用する時、そのCGIのルールにあわせる必要が有ります。もし、新しいCGIのルールが、別のディレクトリーで無いと困るなら、今動いているディレクトリーを変更するのでなく、新しくそのCGIの為に ディレクトリーを作ってやら無いと、名前変えちゃうと、旧(動いている)CGIは リンクが切れて、とまりますよ >CGIってそれぞれのパーミッションがあるのでしょうか CGIには、難しいパーミッションは無いと思いますよ。読み込み実行するだけですから、それより、前の回答のように、参照する ページに答えを、書き込むなら、書き込み可能なように変えないと。 >(※サーバよりCGI置き場が決められていますので移動できない・・・ですよね) その決められた、場所しか使えないなら、CGIを参照しているページのCGI呼び出し部分を、自分のサーバーの合わせたようにその部分のみ(リンクアドレス)を書き換えてやる必要が有るわけです。
その他の回答 (3)
- 999taka
- ベストアンサー率30% (77/252)
ANo.1です。やはり、 一番考えれるのは、パーミッションです フォルダーと 下記の 答えのページ共々、全部許可にしてみてください。サーバーで 禁止されているかもしれませんが、できる範囲で、出来るだけ許可に。 答えのページ 23行目 #◆ テンプレートファイル設定 $html{'default'} = 'html.htm'; $html{'list2'} = 'html2.htm'; $html{'list3'} = 'html3.htm'; 141行目 #テンプレートファイルの読み込み $FORM{'tid'} =~ s/\W//g; $HTML = $html{$FORM{'tid'}} || $html{'default'}; open(HTML)||&error("テンプレートファイルを開けません。<br>[$FORM{'tid'}] $!"); read(HTML,$htmls,-s HTML); close(HTML); ($h_html,$b_html,$f_html)=split("<!--LINE-->",$htmls,3); &error('非対応のテンプレートファイルファイルが指定されました') unless $b_html; $print_max = int($FORM{'print'}) if int($FORM{'print'}) > 0; $print_max = $max_max if $print_max > $max_max; $print_max_dat = $print_max;
- 999taka
- ベストアンサー率30% (77/252)
ANo.1です CGIは、大抵、HTMLで CGIを読み込む、このとき、CGIが何処にあるかを指定する。 CGIが仕事して、何処に答えを返すか。 あと、参照するようなデータが何処にあるか 既製品のCGI使う時は、このアドレスだけが問題になります。 それを、相対アドレスか、絶対アドレスか、などチェックすれば、良いのでは無いかとも思いますが。 発表されている、CGI本体にバグなど、考えにくいです。 それと、参照ディレクトリ(ホルダー)のパーミッションも引っかかることがありますね
補足
ご回答ありがとうございます。 >参照ディレクトリ(ホルダー)のパーミッションも引っかかることがありますね 今すでに別のCGIを設置しているのですが,ディレクトリを変更するとこのCGIが動かなくなります。 CGIってそれぞれのパーミッションがあるのでしょうか?(※サーバよりCGI置き場が決められていますので移動できない・・・ですよね) すみません。重ねて質問しまして。 相対・絶対アドレスもしてみたのですが,「非対応のテンプレート」と出てしまい,先へ進めません。 >発表されている、CGI本体にバグなど、考えにくいです。 そうなんですよね。使用している方も結構いらっしゃるので設定できないのが悔しくて・・・約2週間これしか考えてません(^^; 申し訳ございませんがお知恵をお貸し下さい。
- 999taka
- ベストアンサー率30% (77/252)
これは、ソフトで作ったCGI、ネットにあるCGIなど、区別はなく、CGIが悪いわけではなく、CGIの 置くディレクトリーがザーバー側で、固定されている為だと思われます。 ですから、フロントページなど、ホームページ作成ソフトで、ページを作成した後、CGIなど、サーバー指定の場所に移動させればいいわけですが、ページ本体のHTML文の記述の中に,CGIのリンク(置く場所の)の記述などを修正する必要が有ります。 これは、ネットにあるCGIでも同じです。 したがって、自作できるスキルがあるが、ソフトで作った方が早い。 こうした、条件で無いとCGI利用は難しいですね。 最低、CGIコマンドは書けなくても、そのCGIが動く条件は理解でき、また、HTML(ホームページ本体のプログラム的な記述)をやはり、書けなくても、読める程度の知識は必要と思われます。
補足
早々のご回答ありがとうございます。 ではFrontPageでホームページを作成していなければ特にこだわることではないということですね。 実は質問No.2932811からの続き質問だったのですが,どうしてもCGIROOMさんの「検索専用DB Ver2.10 sort」の設置が上手くいかず悩んでいたところ,サンプルに”FrontPage Express 2.0”とあったのでそれが動かない原因かと思った訳でして・・・・ ご回答からして原因は他にあるようですね(- -; >CGIが動く条件は理解でき、また、HTML(ホームページ本体のプログラム的な記述)をやはり、書けなくても、読める程度の知識は必要と思われます。 ご心配ありがとうございます。HTMLは書けるだけの知識はあります。・・・が,CGIに関しては簡単なものは設置出来るのですがテンプレート式が上手くいかず悪戦苦闘中です(T_T)
補足
パーミッションですが現在以下のようにしています。 【cgi-bin】(755)―database.cgi(755) ―jcode.pl(644) ―onlyone.pl(644) ―data.csv(755) ―data2.csv(755) 【database210s】(777)―・・・.htm(777) #◆ テンプレートファイル設定 $html{'default'} = 'http:・・・jp/database210s/html2.htm'; $html{'list2'} = 'http:・・・jp/database210s/html2.htm'; $html{'list3'} = 'http:・・・jp/database210s/html3.htm'; (絶対値に設定) で,現在「[(空白)]テンプレートファイルを開けません。」のメッセージがでます。 ※ホームページ作成は独学なのでパーミッションもいい加減です(^^; あってるのでしょうか? 色々教えて頂いてるのにHPのアドレスを伏せて申し訳ありません。 会社サイトに試しに設置したいと言う企画段階でして・・・公にできません。ご理解よろしくお願い致します。