- ベストアンサー
CGIの設置についての質問
- 現在HPを作成しておりまして、kent webの日計カウンタを設置しようとしております。
- 1つ目のHPには違う種類のカウンタを設置していますが、2つ目の/dietの方のindex.htmlに同じソースを貼ると動きません。
- どなたかご教授くださいません。
- みんなの回答 (11)
- 専門家の回答
みんなの回答
- p-applepie
- ベストアンサー率53% (156/290)
一つ気になった事があります。 先に頂いた daycount2.cgiの入っているフォルダのURLと dietフォルダのURLが違うのですが、同じpublic_htmlの中に 入ってますか? もしも違う場所にあるpublic_html下にdaycount.cgiがあれば 相対パスではなく、絶対パスでタグを入れる必要があります。 No4に書いた相対パスと絶対パスの違いを読み直してみて下さい。 違うサーバーにあったとしたら、出発地点が北海道と沖縄 といった感じで、全く違う場所から 駅を出て右に進んで 2つめの角を左に曲がった所という道を進んでいる事になります。 一度 <TD><img src="daycount2/daycount.cgi?gif"></TD> ↓ <TD><img src="http://ginmidou.sakura.ne.jp/daycount2/daycount.cgi?gif"></TD> と3カ所とも書き換えてみてはいかがでしょう。
- p-applepie
- ベストアンサー率53% (156/290)
ごめんなさい。 >No7に書いた階層が二つ目の例の通りであれば、 ではなく、No7に書いた階層がひとつ目の通り(daietフォルダ下に daycount2フォルダがある)であれば の間違いでした。 失礼しました。
補足
ご返信ありがとうございます。 いえ今はdaycount2フォルダは 2つ目のとおりでdietフォルダの中には入っていません。 この場合でもソースは間違っていますでしょうか?
- p-applepie
- ベストアンサー率53% (156/290)
ソースが ../daycount になっているようです。 No7に書いた階層が二つ目の例の通りであれば、下記の通り書き換えて下さい。 <TD>あなたは累計</TD> <TD> <TABLE BORDER=1> <TR> <TD><img src="daycount2/daycount.cgi?gif"></TD> </TR> </TABLE> </TD> <TD>人目の訪問者です。</TD> </TR></TABLE> (本日は<img src="daycount2/daycount.cgi?today">番目のアクセスです。 また昨日は<img src="daycount2/daycount.cgi?yes">人のご来場者がありました)
- p-applepie
- ベストアンサー率53% (156/290)
サーバーによって設定が異なるのですが、ディレクトリ内部が 丸見えになるからです。 http://○○.co.jp/aaaa/bbbb/ この場合、aaaaが public_html bbbbがcgiの入っているフォルダとします。 直接上の様なURLを打ち込んだ時、白紙のindexを入れておけば それが表示されるだけですが、入っていないとそのフォルダに入っている 全ファイルが丸見えになる場合があるのです。 悪戯防止と考えて下さい
補足
あれからやってみたのですが、 やっぱりうまくいきません。 丁寧にご回答くださっているのに申し訳ないです。 ちなみにこのページなのですが、 参考になりますでしょうか?
- p-applepie
- ベストアンサー率53% (156/290)
[public-html] + index.html + [daycount] | + CGIスクリプト + [diet] | + index.html | + [daycount2] | +CGIスクリプト と言う状態であれば一階層上がる必要はないので、リンクタグを daycount2/daycount.cgi [public-html] + index.html + [daycount] | + CGIスクリプト + [daycount2] | + CGIスクリプト + [diet] | + index.html であれば、一階層上がる必要があるので ../daycount2/daycount.cgi にしてみて下さい。 それと・・ daycountフォルダなど、cgiフォルダの中にも空白の index.htmlを入れておいた方がいいかと思いますよ。
補足
なぜdaycountフォルダの中に空白のindex.htmlをいれるのでしょうか? 素人で申し訳ないのですが、、、、。
- p-applepie
- ベストアンサー率53% (156/290)
さくらサーバーさんを使用していないので、正確にはわかりませんが 普通はレンタルサーバーの場合は、どのディレクトリにcgiを置かなければ 動作しない・・というような制限は無いと思います。 パーミッションの設定が漏れているか、カウンター画像の場所が違うのかもしれません。 カウンター画像は public_html/daiet/daycount/ 下にありますか? まずは、daiet フォルダ下に置いた daycount.cgiが正常に動いているか 確認してみてはいかがでしょうか。 Kentwebさんのdaycount.cgiなら、チェックモードが用意されています。 http://www.kent-web.com/count/daycount.html の、タグの下に【参考】として daycount.cgi が正常に動いているか 確認するためのURLが記載されています。 これをブラウザのアドレスバーに入れて、正常に動いていれば大丈夫なはずですよ。
お礼
早速チェックモードを使ってみました。 1つ目のHPで使用しているCGIをdaycountフォルダの中にいれ、 2つ目のHPに使用しているCGIをdaycount2としています。 そしてdietのフォルダにdaycout2をいれたのですが、 うまくいかなかったので現在は 2つのCGIのフォルダともpublic-html/下においています。 public-html/diet/indexの方に書いているソースが間違っているとしか考えられません。 こんなソースをかいています。 <CENTER> <TABLE> <TR> <TD>あなたは累計</TD> <TD> <TABLE BORDER=1> <TR> <TD><img src="../daycount2/daycount.cgi?gif"></TD> </TR> </TABLE> </TD> <TD>人目の訪問者です。</TD> </TR> </TABLE> (本日は<img src="../daycount2/daycount.cgi?today">番目のアクセスです。 また昨日は<img src="../daycount2/daycount.cgi?yes">人のご来場者がありました) </CENTER> きちんとdaycount2として../としているのですが、 動きません、、、。 どうかまたまた大変お手数ですが、 ご教授願いたいと思います。
- p-applepie
- ベストアンサー率53% (156/290)
ごめんなさい。書いて頂いた内容をコピペして、最後の2行を消し忘れました。 2行は無視して下さい。 ところで 一つ気になる事があります。 daycount.cgiが一つで、それを二つのhtmlファイルに読み込んでいますよね? 例えばトップページで 1000カウントだった人が、トップページから daiet/index.html へ向かうと 1001カウントになります。 これはいいのでしょうか? (同じIPアドレスはカウントしないという項目にチェックをしていれば 1000のまま) トップを訪れた人とdaietを訪れた人を累計したいのであれば問題無いですが もしも別々に集計したいと言う事であれば、daietフォルダの下にも daycount フォルダを作成して、パーミッションも設定しなおした方が いいかと思います。 daiet フォルダの下に daycount フォルダをもう一つ置く場合は リンクタグは一切書き換えなくても構いません。
お礼
非常にご丁寧にありがとうございます。 ひとつ下だけでなくひとつ上の場合にも../をつけるのですね! ありがとうございます! やってみます! またpublic-html/indexとpublic-html/diet/indexhは 別々に累計したいので、dietフォルダの中にも同じdaycountフォルダを作成して、やりたいと思います! またやってみて報告したいと思います! ありがとうございます!
補足
あれからやってみたのですが、 具体的にいうと ../をつけたのですが、できませんでした。 後はdietのフォルダにdaycountをいれて同じタグでやってみたのですが、 やはりできません、、、、。 私はさくらレンタルサーバーを使っているのですが、 なぜできないのでしょう。 public-html直下のインデックスにしかCGIは適用できないでしょうか?
- p-applepie
- ベストアンサー率53% (156/290)
リンクのタグは、目的地に向かう時に辿る道のりです。 パスには 相対パスと絶対パスというものがあります。 絶対パスは実際の生活に置き換えて言ってみれば住所。 ○○県××市△△町1丁目1-1 というもので、これなら、北海道出発しても、 沖縄を出発しても同じ場所にたどり着きますよね? 一方 相対パスというのは、駅を出て右に進んで2つめの角を左に 曲がった所 と言う感じなので、隣の駅を出発して同じ通り行ったとしても たどり着く先が違いますよね? 話を戻して、リンクのタグが http:で始まるものは、絶対パス。 書いて頂いたタグのように daycount/ から始まるのは相対パス。 public_html にある index.htmlから daycount.cgiまでの道のりと public_html/daiet にある index.htmlから daycount.cgiまでの道のりは スタート地点が違うので、同じリンクタグを貼り付けてもダメなのです。 一度、public_htmlの下にあるindex.htmlと同じ場所に移動してから スタート地点を同じにしてから、daycount.cgiに向かえばいいのです。 daiet/index.htmlから見て、public_html/index.html は一つ上の階層に あるので、 ../ を最初につけて、一つ上の階層にあがってdaycount.cgiに向かえばいいのです。 具体的には下の通りです。 <CENTER><TABLE> <TR> <TD>あなたは累計</TD> <TD> <TABLE BORDER=1> <TR> <TD><img src="../daycount/daycount.cgi?gif"></TD> </TR> </TABLE> </TD> <TD>人目の訪問者です。</TD> </TR> </TABLE> (本日は<img src="../daycount/daycount.cgi?today">番目のアクセスです。 また昨日は<img src="../daycount/daycount.cgi?yes">人のご来場者がありました) </CENTER> となっております。 どうしたらよいのでしょうか、、、。
- p-applepie
- ベストアンサー率53% (156/290)
No1です。 リンクタグはどうなっていますか? a href="http://×××"でしょうか。 それとも a href="daycount/××.cgi"と言う形でしょうか。 下のタグだった場合、No2の方が言われている通り、daietの中にある index.htmlに貼るリンクは a href="../daycount/××.cgi" と 訂正すればOKです。
お礼
さらに補足させていただきます。 現状では タグ、パーミッションなどはすべて正常で Go Liveでいうところのwwwフォルダ(public-html)の中にある www/indexにカウンタのソースをかくと正常に動作します。 私が困っているのは www/diet/indexに同じカウンタのソースをかいても正常に動作せず 数字の画像が表示されません。 なおカウンタのCGIなどはwww/daycount/以下においてあります。 私のつたない説明でわかりにくくまことに申し訳ございませんが、 ご回答の程よろしくお願いいたします。
補足
リンクタグはkent webからの指示どおり <CENTER><TABLE> <TR> <TD>あなたは累計</TD> <TD> <TABLE BORDER=1> <TR> <TD><img src="daycount/daycount.cgi?gif"></TD> </TR> </TABLE> </TD> <TD>人目の訪問者です。</TD> </TR> </TABLE> (本日は<img src="daycount/daycount.cgi?today">番目のアクセスです。 また昨日は<img src="daycount/daycount.cgi?yes">人のご来場者がありました) </CENTER> となっております。 どうしたらよいのでしょうか、、、。
- hosohoso13
- ベストアンサー率44% (138/313)
こういう状態でしょうか? [public-html] + index.html + [diet] | + index.html + [daycount] + CGIスクリプト 呼び出してるパスの階層が違うのではないでしょうか? public-html/index.htmlからdaycountフォルダのスクリプトを呼び出すには、 daycoung/script.cgi で呼び出せますが、 public-html/diet/index.htmlフォルダから呼び出すには、一つしたの階層に戻ってからdaycountフォルダを指定しなければなりませんので、 ../daycount/script.cgi としなければなりません。 ./ 同一階層 ../ 一つしたの階層 という書き方をします。 ですので、正しいスクリプトの呼び出し方は・・・ [puclic-html/index.html]の場合 ./daycount/script.cgi [public-html/diet/index.html]の場合 ../daycount/script.cgi
お礼
すいません上のは間違っています。こちらでお願いします。 ご回答ありがとうございます。 しかしご回答くださった [public-html] + index.html + [diet] | + index.html + [daycount] + CGIスクリプト という状態ではなく [public-html] | + index.html + [daycount] | + CGIスクリプト + [diet] | + index.html という状態なんです。 説明が不足していまして、申し訳ありませんでした。 もしかして1つ目のHPの階層にCGIがあるからだめなのかなと思いました。 dietのフォルダにいれればいけるとかでしょうか。
補足
ご回答ありがとうございます。 しかしご回答くださった [public-html] | + index.html + [diet] | + index.html + [daycount] + CGIスクリプト という状態ではなく [public-html] + index.html + [daycount] | + CGIスクリプト + [diet] | + index.html という状態なんです。 説明が不足していまして、申し訳ありませんでした。 もしかして1つ目のHPの階層にCGIがあるからだめなのかなと思いました。 dietのフォルダにいれればいけるとかでしょうか。 CGIってどこの階層においていても呼び出せるものなのですか?
- 1
- 2
お礼
で、で、、、できました!!!!!!! やった~ありがとうございます!!!! そういえばURLを全然別のにしたかったので、 サーバーは同じでURLだけ変えていたのです。 とてもとてもうれしいです(;;) p-applepieさんにはここまで丁寧にご指導いただいてとても感謝しております。 OKWEBに表彰されても良い方ですね。 本当にありがとうございました!