いつもお世話になります。
今日、カウンタのCGIと、そのカウンタをセッティングするCGIを二つのサーバに設置したのですが、片方のサーバに設置したセッティングCGIがおかしいんです。

本当ならアクセスするとパスワードを求める画面になるはずですが、「次の場所からダウンロードするように選択しました」という、Windowsではおなじみのダイアログが現れて、そのパスワードを入れるページ自体をダウンロードすることになってしまいます。
ここで「ダウンロード」にせずに「上記の場所から開く」にすればパスワード入力画面は開くのですが、これはローカルディスク上で開いていることになりますから、もちろんCGIとしては作動してくれません。

しかし、こんな現象が発生してしまうのはWin98やWin MEでアクセスした場合で、Macでアクセスすると正常にパスワードを求めてきて、もちろんそのまま認証してカウンタのメンテができます。

また、このWinで正常に作動しないのは2つのサーバに設置した内の片方だけで、全く同じものを全く同じ名前とセッティングでアップしてある、もう一つのサーバ上のCGIはMacでアクセスしようがWinでアクセスしようが正常に作動するのです。

しかも、異常がある方のCGIと同じディレクトリにアップしてある、他のCGIは全て正常に作動するのです。

パーミッションの設定も、CGIは755、ログは666と、間違っていないことを確認してあります。
perlへのパスも、Macでなら動くことでもおわかりのように、間違っていません。
尚、このCGIはDOS-Vの改行コードで記述してあります。

どなたかこの異常の原因がおわかりの方はいらっしゃいませんでしょうか?
どうか解決のためのアドバイスをお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

 CGIスクリプトそのものではなく,その出力がダウンロードされてくるんですよね。

だとすると,一番怪しいのはMIMEタイプ設定なのですが…(MIMEタイプについては,参考URLをご覧ください)。

 ダウンロードされるファイルがなんというMIMEタイプとして認識されているか,判らないでしょうか?

 Mozilla(おそらく Netscape 6.1 も)などであれば,ダウンロードダイアログに「~ xxxx/yyyy タイプのファイルをダウンロード後~」というように,ダウンロードしようとしているファイルのMIMEタイプが出力されるのですが,IEではどうやればいいのか私は知らないので…。

 そのMIMEタイプがわかれば,なぜダウンロードされてしまうのかという原因究明の手がかりになると思うので,できれば調べてみてください。

 または,そのCGIスクリプトのなかで,"Content-type: xxxx/yyyy" という文字列を出力しているところがあれば,それがそのMIMEタイプなのですが…。そこによけいな文字(見えない文字~例えば全角空白など~という可能性もあります)が入ってないか,あるいは設定されていないということがないか,調べてみてください。

 Macでちゃんと動くのは,ブラウザー側でそのMIMEタイプをどう扱うかがきちんと設定されている,あるいは(こちらの方が可能性は高いのですが)MIMEタイプ判別をルーズに行っている(例えばMIMEタイプの判らないテキストファイルは text/html として扱う),などの理由からではないかと思います。

参考URL:http://home.tripod.co.jp/help/building/file_mime …

この回答への補足

コメントと参考URLをどうもありがとうございました。
そうなんですか。CGIの中にそういう記述部があるとは知りませんでした。
なるほど!ネスケだとタイプを教えてくれますね。
ダウンロードしようとしているファイルタイプは、application/x-httpd-cgiであると言って来ています。
あれ?CGIの中には「text/html」と記述されているんですが…?

詳しくは、

   .
   .
   .
#
# HTML文書定型部表示ルーチン
#
sub header {
print <<"HTML";
Conyent-type: text/html

<HTML>
<HEAD>
<TITLE>Control room</TITLE>
<META http-equiv="Content-type" content="text/html; charset=Shift_JIS">
</HEAD>
<BODY bgcolor="#f1f1f1" text="#000000" link="#0000E3" vlink="#008080">
   .
   .
   .
と続きます。
いかがでしょうか?

ところで、NetscapeならMIMEタイプが判ると教えて頂いたおかげで、もう一つ発見がありました。
正常と思われていた方のCGIも、Netscapeでアクセスすると出力結果のHTMLソース自体がブラウザに表示されてしまい、やはりパスワード認証は出来ないことが判りました。
これは、やはりCGIの構造の問題でしょうか?

作者の方がアップしていらっしゃるサンプルのページは、MacでもWinでも、IEでもNCでも正常に動いてしまうんで、私の詳細設定法が悪いのかと思い、作者の方がアップされた圧縮ファイルを解凍したそのままのものを私のサーバにアップしてみた(偶然、perlのパスは書き替える必要がなかったので)のですが、それでもやはりダウンロードが始まってしまったりソースが表示されてしまう現象は変わりませんでした。
私の方に問題があるのかと思ってこちらで質問させていただいたのですが、もしかしてこれはCGIの作者の方に質問すべき内容なのでしょうか?

う~ん、面倒な問題にお付き合いいただいて申し訳ありません。この結果に対する更なるご意見を伺えればありがたいのですが…

補足日時:2001/08/25 00:22
    • good
    • 0
この回答へのお礼

どうもお騒がせいたしました。
atonさんが"Content-type: xxxx/yyyy"という部分を指摘して下さったおかげで、CGIを作った方のタイプミスだということが判明し、解決に至りました。
これから作者の方にも連絡しようと思います。
どうもお世話になりました!

お礼日時:2001/08/25 12:12

見た瞬間、ちょっと笑ってしまいました。


もし下の補足が、コピペだとしたら、コレが原因だったのでしょう。

>print <<"HTML";
>Conyent-type: text/html
Conyent-type:・・・・・

間違い探しですネ。もしコレが原因じゃないとすれば、もはや私には分かりません。。。。
    • good
    • 0
この回答へのお礼

お答え頂きましてどうもありがとうございました!
ホ、ホントだー、大正解です!!
そうなんです。コピペで入れたものです。
これを直したら全て問題がなくなりました。
どうもお世話になりました!

お礼日時:2001/08/25 12:09

違うと思うのですが、万が一と言う事がありますので、載せておきます。


そのDLするか聞いてくる方のサーバーでは、もしかしたら「.httacces」という拡張子ごとの設定を行うファイル
が必要なのかもしれません。
だいぶ前の話ですが、私はそれを置いた記憶があります。
最近はめっきり見ませんが。。。
それだと何故MacではDLするか聞いてこないかという事になりますが、どうでしょう。。。
まぁ、万が一の可能性って事で、サーバー管理者に聞くなり、ちょっと調べて見てください(^^;
あまりお役にたてなくて申し訳ないです。
    • good
    • 0
この回答へのお礼

アドバイスをどうもありがとうございます。
.htacsessですか。どういうファイルかは今日まで知りませんでしたが、名前は聞いたことはありました。
その名前をキーワードにサーチエンジンで検索したところ、記述の方法が載っていたので実際にやってみたんですが、そのファイル、問題のサーバにアップすると、数10秒後に自動的に削除されてしまうみたいで、
「あれ~?やっぱりダメだなぁ」と再度確認のためにftpソフトでアクセスしてみたら無くなってしまっていました。妙な構造のサーバなのか何なのか…
そうですね、最終的にはサーバーの管理の方に聞くしかないのかもしれませんね。

>あまりお役にたてなくて申し訳ないです。
とんでもないです。何もお答えが頂けないと、ますます頭を抱えることになりますから、何かしらお心当たりをお聞かせ頂けるのはとても嬉しいです。
どうもありがとうございました!

お礼日時:2001/08/25 00:00

CGIはperlですか?


もしそうでしたら、記述先頭行を確認してください。
(#!/usr/bin/perl とか)
この記述が、サーバ側のperl実行パスとあっていない事はありませんか?
    • good
    • 0
この回答へのお礼

早々のお答えをどうもありがとうございます。
問題のCGIがアップしてある「cgi-bin」ディレクトリには5つのCGIがアップしてあるのですが、どのCGIも全てサーバー設定マニュアル通り、#!/usr/local/bin/perl5と記述してあります。
万一の打ち間違い見逃しを考え、他のCGIからコピー&ペーストして再アップもしてみたのですが、状況は変わらないんです。
また、これらのCGIは全てperl5用なので、perlのバージョン違いということも考えられません。
何せ、Macでアクセスすれば動くわけですし…

お礼日時:2001/08/23 20:51

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCGIカウンタについて

CGIカウンタを設置したいのですが、いまWEBサーバ2台(A,B)があってサーバAにはCGIがあります。すでにあるサーバAを利用してサーバBにあるページにカウンタをつけることは可能でしょうか?
おとなしく、サーバBにもCGIを置いた方が早ければそうしますが・・・

Aベストアンサー

サーバーAのCGIをサーバーBで利用するほうが、手間もはぶけて良いのでは?

1.カウンターが画像で出力される場合(一般的)
サーバーBで
<img src=http://サーバーA/cgi-bin/counter.cgi>
とすれば、カウンターを置けます。

2.カウンターがHTMLで出力される場合(ほとんどない)
サーバーBで
<IFRAME src="http://サーバーA/cgi-bin/counter.cgi" height="10" width="10"></IFRAME>
と書いて強引に表示。

QカウンタCGIについて

今、カウンタを自作しています。
カウンタの種類はテキストカウンタです。
ですがカウンタを設置しているページからその他のページへ移動し、ブラウザの「戻る」ボタンで戻ってきたときにカウントがされないんです。
カウンタをテキストで表示したい、SSIを使いたくないと言う理由でHTMLページではJavaScriptを用いてCGIの内容を取得するようにしています。
どうしたら解決できるでしょうか?よろしくお願いします。

<index.htm>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>カウンタ</title>
</head>
<body>
<p>
<SCRIPT language="JavaScript" src="count.cgi"></SCRIPT>
<noscript>JavaScriptをONにしないとカウンタは動きません。</noscript>
</p>
<p>
<a href="http://www.yahoo.co.jp/">Yahoo!Japan</a>
</p>
</body>
</html>

今、カウンタを自作しています。
カウンタの種類はテキストカウンタです。
ですがカウンタを設置しているページからその他のページへ移動し、ブラウザの「戻る」ボタンで戻ってきたときにカウントがされないんです。
カウンタをテキストで表示したい、SSIを使いたくないと言う理由でHTMLページではJavaScriptを用いてCGIの内容を取得するようにしています。
どうしたら解決できるでしょうか?よろしくお願いします。

<index.htm>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<ht...続きを読む

Aベストアンサー

>ブラウザの「戻る」ボタンで戻ってきたときにカウントがされないんです。

ブラウザの設定で、「表示の度にリロードする」となっていなければ、通常は、キャッシュから読み込んで表示しますので、カウンターデータもリロードしません。
以下のようなmetaタグを入れると、キャッシュを残さないので、表示の度にリロードされます。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

あ、cgiだけ、headerでno-cacheでもいいのかな?

Qカウンタのcgiって?

あるサイトで気に入ったカウンタを見つけたんですがそれをDLしたら画像だけがはいってました。これをカウンタとして働かせるにはcgiを使わなくてはいけないと思うんですがどこをどうしたら良いかわかりません。みなさん助けてください。プロバイダはワクワクです。http://www.wakwak.com/

Aベストアンサー

稼働中のCGIをWebサーバから直接落とすことはできないので、そのカウンタを使っているサイト管理者さんにメールか何かで入手元を問い合わせて、CGIのソースをダウンロードしてください。

QCGIにSSIカウンタをつけたい

掲示板や日記帳などのCGIに、別途ダウンロードしたSSIのテキストカウンタを表示させようとしたところ、ローカル・Web共に表示されませんでした。
表示する為の記述は「<!--#include virtual="仮想パス"-->」で、HTMLファイルに記述した場合は問題なく表示・動作しました。
HTMLファイルで表示・動作しましたし、CGI・SSI・「.htaccess」ファイルなどの設定はおそらく問題ありません。

SSIのテキストカウンタは「The Room」というサイトの「Text Day Counter Ver.1.10 SSI版」を使用しています。
CGIは「掲示板や日記帳など」と言いましたが、まだ検討段階で特定のCGIはなく、色々なCGIで試しています。
※特定のものだけではなく、テキストカウンタを表示したいと思うCGIにつけたいのです。

CGIの記述は
(1) print "<!--#include virtual=\"仮想パス\"-->\n" ;
(2) print '<!--#include virtual="仮想パス"-->\n' ;
(3) print "<!--#include virtual='仮想パス'-->\n" ;
(4) print <<"EOM";
<!--#include virtual="仮想パス"-->
EOM
と4通り試しましたが、どれも動作しませんでした。

SSIのテキストカウンタのパスが「http://xxx.yyy.zzz/aaa/bbb/ccc/txtdayc1.cgi」だとしたら、仮想パスは「/aaa/bbb/ccc/txtdayc1.cgi」のようなので、そう記述しましたが動作しませんでした。
CGIと同じディレクトリに置いているので、記述を「<!--#include virtual="./txtdayc1.cgi"-->」に変えたところ、HTMLファイルでは動作しました。

なぜSSIのテキストカウンタがCGIで表示されないのか、アドバイスをお願いできないでしょうか?
また、「<!--#include virtual="仮想パス"-->」を「<!--#include virtual="CGIファイル名"-->」または「<!--#include virtual="フルパス"-->」のように記述しても問題ないのかも教えて頂けると助かります。
宜しくお願い致します。

掲示板や日記帳などのCGIに、別途ダウンロードしたSSIのテキストカウンタを表示させようとしたところ、ローカル・Web共に表示されませんでした。
表示する為の記述は「<!--#include virtual="仮想パス"-->」で、HTMLファイルに記述した場合は問題なく表示・動作しました。
HTMLファイルで表示・動作しましたし、CGI・SSI・「.htaccess」ファイルなどの設定はおそらく問題ありません。

SSIのテキストカウンタは「The Room」というサイトの「Text Day Counter Ver.1.10 SSI版」を使用しています。
CGIは「掲示...続きを読む

Aベストアンサー

> HTMLファイルにSSIで表示させる場合、HTMLファイルのパーミッションをご存知ないでしょうか
644の様なパーミションであれば、自分以外はReadしかできないので問題ないと思いますよ。
グループに対するアクセス権が必要なさそうなら、もうちょっと厳しくして604でもいいかも。


# ANo.3~4の方法はもう使う必要はないと思うけど
# なんで動かないのか気になるので、一応。

バッククォートですが、これでコマンドを囲むと
そのコマンドが出力した内容が帰ってきます。
例えば、timeコマンドは(環境によりますが)
「2007年 2月16日 金曜日 04時01分12秒 JST」
の様な内容を出力するので、perlで
 $t = `time`;
の様にして呼び出すと、
$tに「2007年 2月16日 金曜日 04時01分12秒 JST」が入ります。

> そして、「print `./txtdayc1.cgi`;」と記述して試しましたが、やはり動作しませんでした。
これですが、ANo.2の補足のようにtxtdayc1.cgiを書き換えた結果、
txtdayc1.cgiを呼び出しても何も出力しないようになっていると言うことはありませんか?

> HTMLファイルにSSIで表示させる場合、HTMLファイルのパーミッションをご存知ないでしょうか
644の様なパーミションであれば、自分以外はReadしかできないので問題ないと思いますよ。
グループに対するアクセス権が必要なさそうなら、もうちょっと厳しくして604でもいいかも。


# ANo.3~4の方法はもう使う必要はないと思うけど
# なんで動かないのか気になるので、一応。

バッククォートですが、これでコマンドを囲むと
そのコマンドが出力した内容が帰ってきます。
例えば、timeコマンドは(環境に...続きを読む

QCGIカウンタの設置場所

 CGIを使ったホームページデビューをしたいと思っているのですが、一つ設計面での重要な問題に突き当たってここに問題を投げかけてみることにしました。

 (CGIの際に使う言語はPerlでして、中級者レベルにはなっているという前提でお話しします)

 まず、アクセスログを残すためにどのCGIの教科書にも載っているアクセスカウンタを設置したいと思っていて、プログラムを書いています。
 プログラム自体を作るのは問題ないのですが、ここで一つの大きな壁にぶつかりました。

 それは、プロバイダはCGIの使用は許可しているのですが、SSIは許可していないという問題です。

 多くの場合、訪問者が最初にアクセスするのはメインページだと思うのですが、これをプロバイダはindex.htmlにするようにしています。しかし、htmlだと静的ページなのでCGIを使うことができません。カウンタは訪問者がメインページに訪問した回数で数えたいのですが、SSIが禁じられているためにこれもできません。
 確かに強引に/cgi-bin/main.cgiとして、訪問者にはここにアクセスしてもらうようにしてもいいのですが、URLの見た目として(つまり、美感の問題)として美しくない気がします。



 まとめると、SSIの使えない環境にて、index.htmlをメインページとした場合、アクセスカウンタをどのように設置するのが適切か?というのが現在の私の問題です。
 (もしくは、解決案はありえないというアドバイスも一つの有益なアドバイスです)



 カウンタの作り方はどのCGIの教科書にも書いてありますが、設置のためのホームページ全体の設計方法については書いていません。
 ですので、経験豊富な方々のいそうなこの場所にて聞いてみることにしました。

 自宅サーバーを使えば、こうした制限はないとは思いますが、セキュリティ上の問題が心配でそれをやる勇気がまだありません。サーバー用のマシンを買ってもいいのかもしれませんが、そのための費用もまだ不足しています。
 ですので、プロバイダ上での公開という前提でアドバイスをいただければと思います。

 何か名案があれば教えてください。
 よろしくお願いします。

 CGIを使ったホームページデビューをしたいと思っているのですが、一つ設計面での重要な問題に突き当たってここに問題を投げかけてみることにしました。

 (CGIの際に使う言語はPerlでして、中級者レベルにはなっているという前提でお話しします)

 まず、アクセスログを残すためにどのCGIの教科書にも載っているアクセスカウンタを設置したいと思っていて、プログラムを書いています。
 プログラム自体を作るのは問題ないのですが、ここで一つの大きな壁にぶつかりました。

 それは、プロバイダは...続きを読む

Aベストアンサー

ご質問に対する回答というよりアドバイスですが,何のためにカウンタを
設置したいのかということをよく考えられた方がいいと思います.

> 訪問者が最初にアクセスするのはメインページだと思うのですが、

私もホームページを開設していますが,そうでもありません.

確かに開設当初は,プロバイダのホームページ一覧からメインページに来る訪問者が
たまにいた程度でしたが,検索エンジンで検索できるようになってからは,ほとんど
検索エンジン経由の訪問者で,メインページ以外の各ページに直接訪れます.
そして,そのページ以外は見ずに帰ってしまう人が多いです.(苦笑)
したがってメインページではカウントされません.

私はホームページ開設当初から,すべてのページにカウンタとアクセス解析用タグを
設置しています.参考までに現在のカウントを示すと,メインページが約 1,100 なのに
対し,来訪者の多い別の2つのページはそれぞれ約 1,400,約 1,600 となっています.

そういうわけで,メインページだけにカウンタを設置しても,
ほとんど意味がないと思います.


ではどうすればいいのかという話になりますが,それは何のために
カウンタを設置したいのかという目的によって変わってくるでしょう.

単に訪問者が多いか少ないかを知って一喜一憂するだけなら,
各ページにカウンタを設置するだけで十分でしょう.

しかし訪問者を増やしたいというのが目的であれば,単なるカウンタでは全く不十分です.
訪問者数を調べて,訪問者数の多いページの内容をさらに拡充するにせよ,
あるいは訪問者の少ないページをテコ入れするにせよ,
どのように改良すればいいかという情報はカウンタからは全く得られません.

ホームページ改善のヒントを得るには,カウンタよりもアクセス解析タグを設置
すべきです.これから得られる一番重要な情報は,訪問者がどういう検索語句で
検索して自分のページにやって来たかということだと思います.

検索語句がそのページのテーマに合致していれば,その内容をさらに充実させれば
いいわけですし,テーマに近いが現在の内容から少しはずれているということであれば
その方向の内容を追加することで訪問者やリピーターを増やすこともできるでしょう.


フリーのカウンタやアクセス解析ツールは色々あるようですので,
それらを利用するのが一番簡単で効果的だと思います.

(なお,これらは訪問者がブラウザの画像表示と JavaScript を OFF にしていると,
 カウントもされず,アクセスログにも足跡が残りません.
 したがって上で示した私のホームページのカウントも正確ではなく,
 実際はもっと多いはずです.)

┌ちなみに私は,ここのカウンタとアクセス解析タグ,
│および Google Analytics を使っています.(いずれも無料)

http://www.ninja.co.jp/

ご質問に対する回答というよりアドバイスですが,何のためにカウンタを
設置したいのかということをよく考えられた方がいいと思います.

> 訪問者が最初にアクセスするのはメインページだと思うのですが、

私もホームページを開設していますが,そうでもありません.

確かに開設当初は,プロバイダのホームページ一覧からメインページに来る訪問者が
たまにいた程度でしたが,検索エンジンで検索できるようになってからは,ほとんど
検索エンジン経由の訪問者で,メインページ以外の各ページに直接訪...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報