* [[サポート掲示板/20]] [#j58cab7e]
|お名前|TRY&ERROR|
|状態|完了|
|追加日時|2005/07/18 08:32:16 (月)|
|対象CGI|みのカウンタ|
|タイトル|画像フォルダがないか、カウンタ画像が揃っていません。 |

** 本文 [#l39311ef]
お世話になっております。商用サイトへ、まずは隠しカウンターとして設置をすすめております。サーバーの仕様で、1:perlのアドレス指定不要 2:パーミッション設定不要 3:相対パス指定不可 となっており、1と2はありがたいのですが3に伴う変更で現在苦慮しております。

具体的には、アドレスの指定を行っている部分を全て絶対パスに書き換えました。そうすることで管理画面からパスワードを打ち込むところまではすすめるのですが、その後上記のエラーメッセージが出てしまいます。

ディレクトリ構成は./cgi-bin/minocnt/imgとなっており、以前の書き込みを参考にURL/cgi-bin/minocnt/counter.cgi?view=img と打ち込んでみても「ERROR」と表示されて画像がうまく出ません。

ちなみに統計情報画面は表示されます。
また、アドレス指定もファイルも間違いないようです。

以上が行った対応とエラーです。何か間違った対応を行ったり、不十分な部分があると思われますので、お手数ですがその点ご教授下さい。

よろしくお願いします。
----
-相対パス指定不可ということなので、まずは、管理画面の方について、以下の修正を countmgr.cgi に施して、エラーが出るか、確認下さい。 -- [[みの]] &new{2005/07/18 10:53:59 (月)};
-- 修正前
 359 if ( opendir( DIR,"./") ) {
 360    while ( $file = readdir(DIR) ) {
 361       if ( $file eq '.' || $file eq '..' || ! -d $file ) { next; }
 362       for ($i=0; $i<=9; $i++) {
-- 修正後
 359 if ( opendir( DIR,"CGIを設置したディレクトリの絶対パス") ) {
 360    while ( $file = readdir(DIR) ) {
 361       if ( $file eq '.' || $file eq '..' ) { next; }
 362       $file = "CGIを設置したディレクトリの絶対パス/$file";
 363       if ( ! -d $file ) { next; }
 364       for ($i=0; $i<=9; $i++) {
-早速のお返事ありがとうございます。しかし、やっぱり同じエラーが出てしまうようです。 -- [[TRY&ERROR]] &new{2005/07/18 22:23:54 (月)};
-修正した部分は「if ( opendir( DIR,"./cgi-bin/minocnt/img/") ) {」と「$file = "./cgi-bin/minocnt/img/$file";」としております。 -- [[TRY&ERROR]] &new{2005/07/18 22:27:10 (月)};
-「相対パス指定不可」のはずなのに、なぜ、相対パスを指定されているのでしょうか? CGIを設置したディレクトリの''絶対パス''で試してください。 -- [[みの]] &new{2005/07/18 23:56:13 (月)};
-すみません。サーバー元の記述を読み返してみたところ「Perl内でjcode.plや他のCGIスクリプトなどの場所を指定して読み込む場合は、最上位のフォルダからの絶対パスで指定して頂く必要があります。相対パスでの指定はできませんのでご注意下さい。」とのことでした。ちなみに、絶対パスで試してみても、症状は同じでした。 -- [[TRY&ERROR]] &new{2005/07/19 00:57:33 (火)};
-jcode.plの話はしていません。「./cgi-bin/minocnt/img/」は相対パスです。絶対パスにして下さい。とお願いしています。分かりますか? -- [[みの]] &new{2005/07/19 09:53:11 (火)};
-大変失礼致しました。「if ( opendir( DIR,"http://www.chintaikukan.com/cgi-bin/minocnt/img/") ) {」「$file = "http://www.chintaikukan.com/cgi-bin/minocnt/img/$file";」のように変更いたしましたが、やはり同じでした。私はサーバー元の前述の説明から、CGIファイルに記述されている場所を、ルートディレクトリからの相対パスに書き換えてしまったのですが、これが原因と考えられるのでしょうか。 -- [[TRY&ERROR]] &new{2005/07/19 10:42:57 (火)};
-URLとディレクトリの違いを理解されていますか? URLの絶対パスではなく、CGIを設置した''ディレクトリ''の絶対パスを指定してください。 -- [[みの]] &new{2005/07/19 11:19:51 (火)};
-不勉強でご迷惑をおかけして、すみません。いろいろ調べてみて、記述してみました。「/NASNETB/HostingRoot/c/h/chintaikukan.com/cgi-bin/minocnt/img/」これでしょうか?しかし、まだ動きません。 -- [[TRY&ERROR]] &new{2005/07/19 22:37:31 (火)};
-「img/」は、ない方が良いと思います。 -- [[みの]] &new{2005/07/21 12:49:16 (木)};
-大変お世話になりました。やっとうまく動くようになりました!ありがとうございました。 -- [[TRY&ERROR]] &new{2005/07/21 21:37:43 (木)};

- 以下のコメントを頂きましたが、大丈夫です。こちらで処理しておきます。こちらこそ、ありがとう御座いました。by [[みの]]

 超初心者の私にも親切丁寧に教えてくださり、ありがとうございました。
 晴れてカウンタを表に出すときには、ぜひリンクを張らせてください。
 これからもがんばってくださいね。では。


[[サポート掲示板]]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS