KENT-WEB サポートコーナー 過去ログ [ 0298 ]


記事No: 5805
投稿日: 2009/05/06(Wed) 21:51:03
タイトルdaycountのERRORについて
ID情報: ttoku
投稿者: ttoku
URLhttp://t2net.dip.jp/daycount/

お世話になります。DAY COUNTER v2.7を導入したいと思い、試行錯誤しているのですが、ERROR表示が出てしまします。

環境はWindows2008 WebServer+IIS7の自宅サーバで、下記を行いました。
 1.解凍したディレクトリをc:\inetpub\wwwroot\daycount\に置く
 2.\daycount\gif1と\gif2に0.gif,1.gif,2...の数字の画像を置く
 3.\daycount\以下のファイル(daycount.dat含む)/ディレクトリに対し、IIS_USERグループの読み書き権限を付与する。
 4.*.cgiと*.plをPerlで実行するように、IISのハンドラマッピングを設定

上記でCheckを行うとAll-OKでした。daycount.cgiは変更していません。その後、gif,today,yesを指定して表示をさせようとしたのですが、全てERRORとなってしまいました。

そこで問題を切り分けたいと思い、下記のような確認を行いました。
http://XXXX.YYY/daycount/daycount.cgi?today と指定
  →同じくERRORが表示 →htmlには特に問題なし?

http://XXXX.YYY/daycount/gifcat.pl を指定
  →script produced no output と表示される →実行自体はされているようなのでPerlの実行環境には問題なし?

・daycount.cgiの中で、ERROR処理に飛んでいるところは92行目あたりの記録ファイル読み込みの箇所だと思ったので、試しに
「open(DAT,"+< $logfile") || &error」 の「|| &error」の部分を削除してエラー処理に飛ばないようにし、
http://XXXX.YYY/daycount/daycount.cgi?today を実行した
 →「000」の画像が表示された →画像ファイルにも問題なし。logfile=daycount.datの読み込みに問題あり?

・daycount.datの中身を「100<>10<>10<>100<><>」と変えて上記を実施 →000のまま →やはりdatが読み込まれていない?

checkは問題なかったので、
 ・Perl/CGIの実行
 ・daycount.datの配置と読み書き権限
 ・gifファイルの配置と中身
についても問題ないように見えます。
 
過去の質問も捜して、
http://www.kent-web.com/support/old/60/0192.html
を参考に「daycountのディレクトリをネットワーク上で共有する」
をしてもだめでした。

http://www.kent-web.com/support/old/45/0159.html
にある状況とも似ており、
> 結果的にW2KServerとIISは通常のパーミッションのほかにOSのファイルシステムで管理するアクセス制限が存在することが判明いたしました。
> 特にWebフォルダがNTFSでフォーマットされている場合、そのファイルシステムでフォルダまたはファイル毎に事細かく制御が可能なようです。
> で、Webフォルダ内のプロパティで書込みや実行の権限を与えてもファイルシステムで規制されるためデータファイルへのアクセスができなかったようです。
> 具体的には必要なフォルダやファイルそのもののプロパティで WEB共有を行いさらにWEBサーバーの設定とは別にアクセスおよび実行権限の設定が必要でした。

とあるように、counterでなくOSやIISの権限設定の問題のようにも思えるのですが、何か分かる方がいましたらヒントでも頂けないでしょうか。。。

 上記で言っている「さらにWEBサーバーの設定とは別にアクセスおよび実行権限の設定」というのが私が設定した方法でよいのか自信がないです。

何卒よろしくお願いいたします。


記事No: 5812
投稿日: 2009/05/07(Thu) 16:06:03
タイトルRe: daycountのERRORについて
ID情報: teketen
投稿者: てけてん

ご質問を拝見した限り、CGIスクリプトの問題ではなく、サーバー側の問題ですよね。
この掲示板では、IISについて詳しい人が居ません。

Googleで検索したところ、以下のページを見つけました。
IIS7でepad.cgiを動作させる時の設定例ですが
http://www01.gine.jp/post/e-PADefbc88BBSefbc89e381aee382a4e383b3e382b9e38388e383bce383ab.aspx
参考になりませんか?
これを、カウンタのスクリプトに置き換えて設定すれば良いように思います。

それでも動作しないという場合は、
古い情報ではありますが
http://mikeneko.creator.club.ne.jp/~lab/perl/iis/
また、検索して見つけた
http://mizushima.ne.jp/Windows/HTTP/IIS/IIS-setting.php
なども詳しそうなので、一度読んでみて下さい。

あとは、餅は餅屋ということで
http://technet.microsoft.com/ja-jp/library/cc731821(WS.10).aspx
とか。

上記ページを参考にしても動作しないという場合は、自宅サーバーやIIS関連のサイトの掲示板で、サーバーの設定に関してご質問された方が宜しいかと存じます。


記事No: 5813
投稿日: 2009/05/07(Thu) 16:36:28
タイトルRe^2: daycountのERRORについて
ID情報: ttoku
投稿者: ttoku
URLhttp://t2net.dip.jp/daycount/

てけてん様
お返事どうもありがとうございました。

頂いたアドバイスも参考に、IISのアクセス権について色々調べてみて、無事解決できました!

IISは7になってインターネットユーザのアクセス権について設定が変わっているようで、この掲示板では少し話題違いとなってしまうかもしれませんが、情報として具体的な方法を書いておきます。

ポイント:IIS7でdaycount.datに書き込み権限を与える場合、IIS_IUSRSでなく、IUSRに付与する必要がある。

方法:
 ・ファイルのプロパティのセキュリティタブを開く
 ・真ん中の編集ボタンを押して、アクセス許可のWindowを開く
 ・追加を押して「ユーザーまたはグループの選択」Windowを開く
 ・詳細設定を押してでた新しいWindowで「今すぐ検索」を押し、「IUSR」を選択して追加する 
 ・このIUSRに対して書き込み権限を付与する

以上で正常にカウンタが回るようになりました。
お騒がせしてすみませんでした。


[検索ページ]