◆ ダウンロードカウンタ ◆

概要

どのファイルがどれだけダウンロードされたかをカウントするスクリプトです。
画像ファイルでも zip 等に圧縮しないでそのままダウンロードしてもらうことができます。(Mac IE 5.x を除く)
主な解析項目は、日単位、月単位、ファイル名、ホスト名から任意の解析が行えます。
指定したディレクトリにあるファイル以外に、外部にあるファイルのダウンロード数をカウントすることもできます。
オプションにより、指定された参照元からのみ許可、1日当たりのダウンロード数の上限や多重ダウンロードの防止といった簡易制限も可能です。
正確なダウンロード数を取得するためにファイルへの直リンクを防止することもできます。(通常モードで CGI 実行権限がオーナー権限のみ)
ログのフォーマットはカンマ区切りの CSV 形式として出力されます。
ログは管理画面にて閲覧することができ、サーバの容量が許す限り全て保存することができます。
ログのダウンロード、削除が管理画面で行なえますので管理が容易に行なえます。
ログを添付ファイルとして指定メールアドレスに送信することもできます。
ダウンロードに指定できるファイルの種類
*.7z *.bin *.bmp *.cab *.doc *.docx *.exe
*.gif *.hqx *.jpg *.jpeg *.lzh *.mid *.midi *.mp3
*.mpg *.mpeg *.pdf *.png *.ppt *.pptx *.rar *.sit
*.swf *.txt *.wav *.xls *.xlsx *.zip

※上記以外の拡張子のファイルを使用する場合は設定ファイルに追加してください。

ダウンロード

  • スクリプト利用規定(お読みください)
  • ダウンロード (download.zip)
  • バージョンアップ方法(旧バージョンをお使いの方)

    v1.51 以前をお使いの方はお手数ですが downcfg.cgi を新規に設定されてから logs ディレクトリ、downcfg.cgi, download.cgi をアップロードしてパーミッションを変更してください。

    v1.51 以降をお使いの方は download.cgi のみ差し替えるだけで OK です。(download.cgi の perl のパス、パーミッションの設定は忘れずに行なってください)

    〓 設置以外の変更・注意点 〓

    ファイル設定

    ダウンロードしたファイルを解凍すると download フォルダがあります。このフォルダを開くと2つのフォルダと4つのファイルの計6つのファイルがあります。

    file/
    この中にダウンロードしてもらうファイルを入れてください。index.html はそのまま入れておいてください。
    なお、ファイル名には半角英数字、ハイフン、ドット、アンダースコア (0-9 A-Z a-z - . _) のみ使用できます。
    logs/
    この中にログファイルが格納されます。index.html はそのまま入れておいてください。
    downcfg.cgi
    設定ファイルです。以下の青文字が設定箇所です。この設定ファイル内の詳細説明を参考に半角英数字で正確に記述してください。
    各ログファイルの設定値はカレントディレクトリに指定してください。(ログファイル名は基本的に初期設定値のままで OK です)
    ※通常使用では、基本設定の [管理パスワード](管理画面にログインするために必要)のみ初期値から変更されれば正常に動作いたします。
    ■ 基本設定
    $FileDir = './file/';
    [必須] ファイルディレクトリのパスを相対パスで記述してください。
    
    $LogDir = './logs/';
    [必須] ログ保存ディレクトリのパスを相対パスで記述してください。
    
    $DownLog = 'downlog.csv';
    [必須] ダウンロードログファイル名を記述してください。
    
    $ErrLog = 'errlog.csv';
    [必須] エラーログファイル名を記述してください。
    
    $LogSplitMode = 0;
    [必須] ログを分割するタイミングを 0, 1, 2 のいずれかで記述してください。
    0 は指定サイズに達した時、1 は日付が変わった時、2 は月が変わった時に現状のログが過去ログとなります。
    
    $LogSplitSize = 1024 * 300;
    [必須] ログ分割サイズを記述してください。
    この場合はログ分割指定がサイズ指定「0」の時、ログサイズが300キロバイトになると過去ログファイルが作成されます。
    ※ログ分割指定がサイズ指定以外の場合はこの項目は無視されます。
    
    $LogSave = 0;
    [必須] 作成された過去ログを保存しておく最大ファイル数を数値で記述してください。
    全て保存しておく場合は 0 にしてください。この場合は自動削除いたしません。
    保存数を指定した場合は指定されたファイル数を超えた時に一番古い過去ログが自動削除されます。
    
    $AdminMailto = '';
    $SendmailPath = '';
    [任意] 過去ログを送信する場合、送信先のメールアドレスと sendmail のパスを記述してください。
    過去ログ保存数を指定している場合に自動削除される過去ログを添付ファイルとして送信することができます。
    使用しない場合はそれぞれ空白「''」にするかコメントアウトしてください。
    
    $TotalCountFile = './count.cgi';
    [任意] 総ダウンロード回数保持ファイル名をカレントディレクトリに指定して記述してください。
    解析時に表示されるダウンロード数はログ単位になりますので、
    今までの各ファイルの総ダウンロード数を保存する場合のみ記述してください。
    使用しない場合は空白「''」にするかコメントアウトしてください。
    
    $LoginLogFile = './loginlog.cgi';
    [任意] ログイン時間記録ファイル名をカレントディレクトリに指定して記述してください。
    ログイン記録を使用する場合のみ記述してください。
    使用しない場合は空白「''」にするかコメントアウトしてください。
    
    $RowIndexFormat = 0;
    [必須] 解析項目に表示される番号の形式を設定してください。
    0 は連番形式、1 はランキング形式になりますのでどちらかを記述してください。
    ※総ダウンロード回数の表示は常にランキング形式になります。
    
    $AdminPass = 'password';
    [必須] 管理パスワードを記述してください。半角英数字とアンダースコアのみ使用できます。
    ※他人がわからないようなパスワードに必ず変更してください。
    
    ■ オプション設定 詳細説明
    (@AllowLoginDomain) = ();
    [任意] 管理画面にログインを許可するドメインを設定する場合に記述してください。
    
    $ViewTotalCount = 0;
    [任意] 総ダウンロード数を一般公開する、しないを指定してください。
    
    $LineFeedChange = 0;
    [任意] テキストファイルをダウンロードしてもらう時の改行コードの扱いを指定してください。
    
    $UrlDirectory = '';
    (@UrlFileList) = ();
    [任意] ファイルディレクトリ以外のファイルをダウンロードしてもらう場合(以下 URL モード)に記述してください。
    
    (%AliasFileName) = ();
    [任意] ダウンロードされたファイルを別の名前としてログに記録する場合に記述してください。
    
    (%AddMime) = ();
    [任意] ファイルの種類を追加する場合に記述してください。
    
    ■ 制限設定 詳細説明
    $SetReferer = '';
    [任意] 指定した URL からのみダウンロードを許可する場合に記述してください。
    
    $DownloadLimit = 0;
    $NeedCookie = 0;
    [任意] 1人のユーザーが1日にダウンロードできる最大数を指定してください。
    最大数を指定する場合はクッキーのチェックをする、しないを指定してください。
    
    $WaitTime = 0;
    $DenyIPFile = './denyip.cgi';
    [任意] 同一 IP アドレスのクライアントが最後にダウンロードしてから
    次のファイルをダウンロードするまでの待機時間(秒)を指定してください。
    待機時間を指定する場合は IP アドレスを記録するファイル名をカレントディレクトリに指定して記述してください。
    
    ■ デザイン設定(詳細は設定ファイル内の説明を参照してください)
    $StyleBgColor = '#ffffff';
    $StyleColor = '#000000';
    $StyleFont = 'Verdana';
    $StyleSize = '0.7em';
    $StyleBorder = '#eeefef';
    $StyleHeader = '#eeeeff';
    $StyleGraph = '#ccccff';
    $StyleGraphBdr = 0;
    $StyleGraphBdrColor = '#77aaff';
    $StyleLink = '#0000ff';
    $StyleVlink = '#800080';
    [必須] 解析結果表示されるデザイン(見栄え)を変更される場合は、各項目を任意の値に変更してください。
    
    ■ 上級者向け設定(通常は変更不要です。詳細は設定ファイル内の説明を参照してください)
    $UnRecErrorCode = '';
    [任意] エラー時にエラーログに記録したくないエラーがある場合のみ設定してください。
    
    download.cgi
    ダウンロードスクリプトファイルです。以下の青文字が設定箇所です。
    #!/usr/local/bin/perl
    [必須] 1行目に perl のパスをサーバで指定された perl のパスに書き換えてください。
    
    index.html
    ディレクトリ参照を防ぐための index.html です。
    Readme.html
    オフライン版の取り扱い説明書です。このファイルは転送不要です。

    オプション設定の詳細

    ログイン許可ドメイン

    管理画面にログインを許可するドメイン(IP アドレス・ホスト名)を設定することができます。セキュリティを強化するために設定することをおすすめします。

    不要の場合は (@AllowLoginDomain) = (); としてください。使用する場合はログインを許可するドメイン名(ご利用されているプロバイダの IP アドレスやホスト名の一部)をクォーテーションで括り、複数を設定する場合は一番最後の値以外をカンマ[,]で区切ってください。不完全な IP アドレスやホスト名を記入する場合はワイルドカード[*]を使用してください。

    たとえば、example.com が含まれるドメインのみ管理画面にログインを許可する場合は以下のように記述します。

    (@AllowLoginDomain) = ('example.com');
    

    .foo.example.net が含まれるホスト名と 192.168. が含まれる IP アドレスのみ管理画面にログインを許可する場合は以下のように記述します。

    (@AllowLoginDomain) = ('*.foo.example.net', '192.168.*.*');
    

    ※この設定をすると管理パスワードが正しくても設定値と一致しない IP アドレス・ホスト名はログインできなくなりますのでご注意ください。誤ってログインできなくなった場合は設定値を見直してください。

    総ダウンロード回数の公開

    総ダウンロード回数を記録している場合、訪問者にダウンロードのランキング(総ダウンロード回数)を公開することができます。

    総ダウンロード回数を公開しない場合。(管理画面内のみ閲覧可能)

    $ViewTotalCount = 0;
    

    総ダウンロード回数を公開する場合。

    $ViewTotalCount = 1;
    

    公開する場合、download.cgi の引数に ?c=1 として呼び出すと総ダウンロード回数を表示します。

    http://www.example.com/cgi-bin/download/download.cgi?c=1
    

    たとえば、リンクにするには以下のようになります。

    <a href="http://www.example.com/cgi-bin/download/download.cgi?c=1">ダウンロードの集計</a>
    

    ※通常のログファイル(ダウンロードログ、エラーログ)を公開することはできません。
    ※総ダウンロード回数を記録していない場合や $ViewTotalCount = 0; としている場合は上記の呼び出しをしても表示されません。

    テキストファイルの改行コード変換

    ダウンロードしてもらうファイルがテキストファイルの場合、ダウンロード時にクライアントの OS にあった改行コードに変換することができます。

    ほとんどの FTP ソフトでは、アスキー(テキスト)モードでサーバにアップロードされるテキストファイルは改行コードの変換(主に CR+LF → LF)が自動で行われますので、この変換された改行コードをクライアントの OS にあった改行コードにすることができます。

    また、ダウンロード(ファイルオープン)時に改行コードが LF 以外の(主に Windows や Macintosh の環境で作成された)テキストファイルをダウンロードしてもらう場合に改行コードが LF に自動変換されてしまいますので、同様に改行コードを変換してダウンロードすることができます。

    ファイルの改行コードを変換しないでダウンロードしてもらう場合。(デフォルト値)

    $LineFeedChange = 0;
    

    ファイルの改行コードを Windows は CR+LF、Macintosh (Classic Mac OS) は CR に変換してダウンロードしてもらう場合。

    $LineFeedChange = 1;
    

    変換する場合の対象となるファイルは、ファイル保存ディレクトリにアスキー(テキスト)モードでアップロードされたファイルと拡張子が「.txt」のファイルです。

    ※変換する場合は改行コードが変わりますので、サーバ上にあるファイルとダウンロードされるファイルのサイズが一致しない場合があります。つまり、サーバ上にあるファイルとダウンロードされるファイルのファイル内の文字列は同一ですが、チェックサムは一致しなくなります。

    ※URL モードのファイルは変換できません。
    ※クライアントの OS が UNIX 系の場合や OS の判別ができない場合は変換いたしません。

    URL モード(ファイルディレクトリ以外のファイルのダウンロード)

    ※通常のダウンロードと URL モードを併用することも可能です。

    URL モードとは、ファイル保存ディレクトリ(file フォルダ)以外の外部にあるファイルをダウンロードしてもらう場合にその URL を設定します。

    URL モードを有効にするには、downcfg.cgi の設定項目にある $UrlDirectory にファイルがある URL の一部を記述しておきます。
    URL は http から始まって、最後はスラッシュで終わるように記述してください。

    たとえば、 http://www.example.com/cgi-bin/download/download.cgi にこの CGI を設置したとして、http://www.example.com/archive/ にある aaa.zip というファイルをダウンロードしてもらうには次のように記述します。

    $UrlDirectory = 'http://www.example.com/archive/';
    

    これにより http://www.example.com/archive/ 以下のディレクトリ内のファイルがダウンロードの対象となります。

    ダウンロードしてもらうファイルのリンクは、download.cgi の引数に ?url=ダウンロードファイルのパス として url= に URL を記述してください。また、url= の変わりにパス指定(環境変数 PATH_INFO)も可能です。

    <a href="http://www.example.com/cgi-bin/download/download.cgi?url=aaa.zip">ダウンロード</a>
    
    <a href="http://www.example.com/cgi-bin/download/download.cgi/aaa.zip">ダウンロード</a>
    
    $UrlDirectory = 'http://www.example.com/';
    

    とした場合、http://www.example.com/ 以下のディレクトリ内のファイルがダウンロードの対象となりますので次のようになります。

    <a href="http://www.example.com/cgi-bin/download/download.cgi?url=/archive/aaa.zip">ダウンロード</a>
    
    <a href="http://www.example.com/cgi-bin/download/download.cgi/archive/aaa.zip">ダウンロード</a>
    

    このように $UrlDirectory と url= に指定したパスを結合した URL が実際のダウンロード先となりますので、上記のリンクをクリックすると http://www.example.com/archive/aaa.zip のファイルをダウンロードしてもらうことができます。

    URL モードはリダイレクトなので、画像ファイル等は通常ダウンロードのダイアログは表示されないで直接表示されます。(リダイレクト先のサーバのファイルに対する MIME タイプに依存します)

    通常時に表示されるファイル(JPG や GIF 等)を URL モードを使用してダウンロードのダイアログを表示させたい場合には、AddType の項目に MIME タイプを記述した .htaccess を URL モードに指定しているファイルのディレクトリに設置してください。(.htaccess はアスキーモードで転送してください)

    .htaccess の記述例(URL モードで JPG ファイルをダウンロードのダイアログを表示させる)
    AddType application/image/jpeg jpeg jpg
    
    
    上記の記述でダイアログが表示されない場合は JPG ファイルの MIME タイプをバイナリファイルとする
    AddType application/octet-stream jpeg jpg
    
    

    上記の .htaccess を URL モードに指定しているファイルのディレクトリに設置すると、JPG ファイルはダウンロードのダイアログを表示させることができます。ただし、Mac IE 5.x やクライアントの環境によってこの .htaccess を設置しても直接表示されてしまいますので、全てがこれに当てはまる保証はいたしません。

    ※.htaccess を設置する場合 .htaccess の設置を許可されていて、なおかつ AddType の項目の使用が許可されている必要があります。また、サーバの環境にもよりますので全てがこの限りではありません。

    ※.htaccess は設置したディレクトリ以下に全て適用されますので、通常どおり表示させたいファイルはこのディレクトリより下の階層に置かないようにしてください。なお、例外もありますので詳しくは Apache のディレクティブの適用のされ方を参照してください。

    URL モードオプション(任意)

    URL モード(url=?? に指定しているファイル)ではリダイレクト先のファイルが存在しない場合でもリダイレクトされますので、URL モードに指定しているファイルを @UrlFileList に定義しておくことでエラーログの取得といたずら等によるリダイレクトを防止することができます。

    使用しない場合は何も記述しないでください。記述する(使用する)場合はファイル名をクォーテーションで括り、複数を設定する場合は一番最後の値以外をカンマ[,]で区切ってください。

    たとえば、URL モードで aaa.zip bbb.lzh ccc.txt がダウンロードの対象ならば、以下のように記述します。

    (@UrlFileList) = ('aaa.zip', 'bbb.lzh', 'ccc.txt');
    

    ※この項目は URL モード使用時の任意設定ですが、記述するとここで指定したファイル名のみダウンロードが許可されますので、URL モードに指定しているファイル名を全て記述しないとダウンロードに支障が起こります。

    ※URL にディレクトリが含まれる場合 (url=/files/aaa.zip 等) は完全に制御することはできませんので、使用する場合は URL にディレクトリが含まれないように $UrlDirectory を設定してください。

    ダウンロードされたファイル名の別名記録

    通常はダウンロードされたファイル名をログに記録しますが、このファイル名を別の名前に変更してログに記録することができます。

    使用しない場合は (%AliasFileName) = (); としてください。
    使用する場合は名前を変更して記録するファイルのみ「 '変更対象のファイル名' => '記録用ファイル名' 」としてクォーテーションで括ったのを1セットとして記述してください。

    ファイル名には半角英数字、ハイフン、ドット、アンダースコア (0-9 A-Z a-z - . _) のみ使用することができます。複数を設定する場合は一番最後のセット以外をカンマ[,]で区切ってください。(改行は任意ですがセット単位にしてください)

    (%AliasFileName) = (
    	'download.zip' => 'download120.zip',
    	'picture800_600.jpg' => 'picture.jpg',
    	'picture1024_768.jpg' => 'picture.jpg'
    );
    

    上記の例は、download.zip がダウンロードされたら download120.zip としてログに記録、picture800_600.jpg と picture1024_768.jpg は picture.jpg としてログに記録して、その他のファイルは通常どおりダウンロードされたファイル名を記録します。

    ファイルの種類を追加する場合

    ※ファイルタイプを新規に追加する場合のみ記述してください。

    標準に無いファイルの種類をダウンロードしてもらうには、downcfg.cgi にある %AddMime に拡張子と MIME タイプを追加してください。
    追加するには、「 '拡張子' => 'MIMEタイプ' 」としてクォーテーションで括ったのを1セットとして記述してください。

    拡張子の大文字小文字はどちらでも OK です。拡張子の部分には拡張構文を除く一部の正規表現(^ と $ は不可)も使用できます。MIME タイプは該当拡張子の application/xxxxxxx の xxxxxxx の部分だけ記述してください。

    たとえば、exe ファイルの場合通常 application/octet-stream ですが、application/ の部分は記述しないで octet-stream としてください。複数を設定する場合は一番最後のセット以外をカンマ[,]で区切ってください。(改行は任意ですがセット単位にしてください)

    (%AddMime) = (
    	'\.tar' => 'x-tar',
    	'\.t?gz' => 'x-gzip',		# x-gzip-compressed
    	'\.ico' => 'image/x-icon'	# image/vnd.microsoft.icon
    );
    

    上記の例は、TAR アーカイブ (.tar)、TGZ (.tgz) と GNU ZIP (.gz) のアーカイブ、アイコンファイル (.ico) の4拡張子3種類をダウンロードファイルとして追加する場合の記述例です。

    拡張子に対応する MIME タイプの種類は、こちらに mime.types の一部が掲載されていますので参考にしてみてください。

    ほとんどの場合ここに追加するだけで問題ないですが、あまり一般的ではない拡張子の場合、正常にダウンロードされない可能性があります。その場合は別途 .htaccess に AddType の項目として追加してください。

    ※.htaccess を設置する場合、.htaccess の設置を許可されていて、なおかつ AddType の項目の使用が許可されている必要がありますので、詳しくはお使いのサーバ管理者にお問い合わせください。

    制限設定の詳細(通常は使用しないことをおすすめします)

    ダウンロードを許可する URL

    指定した URL 以外からのダウンロードを拒否することができます。指定する場合、必ず http から記述してください。

    参照元に指定した URL の一部が含まれている場合のみダウンロードを許可するには以下のように記述します。

    $SetReferer = 'http://www.example.com/';
    

    この場合、http://www.example.com/picture/index.html からのダウンロードは http://www.example.com/ が含まれていますのでダウンロードされます。

    参照元が指定した URL の場合のみダウンロードを許可するには以下のように記述します。

    $SetReferer = 'http://www.example.com/picture/download/download.html';
    

    この場合、上記以外の URL からはダウンロードをすることはできません。

    ※ここに URL を記述するとコンテキストメニューの「名前を付けて保存」や「ファイルに保存」からは参照元が送信されないため、ダウンロードすることができなくなります。(一部のブラウザを除く)

    ※ここに URL を記述すると参照元を遮断するソフト (Norton Internet Security) 等を使用しているユーザーは、参照元を許可するようにしないとダウンロードに支障が起こります。また、参照元は偽装することもできますので完全ではありません。

    ダウンロードの上限数

    1人のユーザーが1日にダウンロードできる最大数を指定することができます。

    ダウンロードの上限数は指定しない場合。(デフォルト値)

    $DownloadLimit = 0;
    

    ダウンロードの上限数を指定する場合は $DownloadLimit に回数を記述してください。

    $DownloadLimit = 30;
    

    この場合、1ユーザー当たり1日に30回までダウンロードを許可します。上限を超えるとエラー表示します。

    上限数を指定した場合、1日のダウンロード数のチェックをクッキーにて行いますので、クッキーの受け入れを無効にしていると上限数を超えてもダウンロードすることができますので、クッキーの受け入れ状態をチェックすることができます。

    クッキーを有効にしているユーザーに対してのみ上限数を設定する場合。

    $NeedCookie = 0;
    

    クッキーを有効にしていないユーザーは無条件でダウンロードを拒否する場合。(拒否したときはエラー表示します)

    $NeedCookie = 1;
    

    $NeedCookie = 1; とすると、クッキーの受け入れを無効にしているユーザー以外にも携帯端末や検索エンジンのクローラ等(一部除く)は一切ダウンロードすることができなくなります。

    ※$NeedCookie は $DownloadLimit に回数を指定した場合のみ適用されます。

    ※上限数に達した場合でもユーザーがクッキーを削除された場合は再度その時点からの回数になりますので、完全に1日の上限数を指定できるものではありません。

    同時ダウンロード制限

    同一 IP アドレスのクライアントが最後にダウンロードしてから次のファイルをダウンロードするまでの待機時間を指定することができます。

    連続した(多重)ダウンロードを許可します。(デフォルト値)

    $WaitTime = 0;
    

    制限時間内の多重ダウンロードを拒否する場合は $WaitTime に待機時間(秒)を記述してください。

    $WaitTime = 10;
    

    この場合、同一 IP アドレスによる10秒以内の連続したダウンロードは拒否します。(拒否したときはエラー表示します)

    次に、この IP アドレスを記録するファイル名を $DenyIPFile に記述してください。なお、使用しない場合でも記述しておいてかまいません。

    $DenyIPFile = './denyip.cgi';
    

    このファイルはカレントディレクトリに指定してください。同時ダウンロード制限を使用時に自動作成されます。

    ファイル転送

    FFFTP をご使用の場合
    オプション → 環境設定にある転送1のタブにおいて、ファイル名で切り替えのラジオボタンにチェックを入れて、アスキーモードのファイル名に *.txt *.html *.cgi がある場合、(無い場合は追加して)そのまま download ディレクトリをアップロードしてそれぞれパーミッションを変更してください。
    その他の推奨アップロード方法
    download ディレクトリをバイナリモードで転送してから file ディレクトリ以外をアスキーモードで転送し直して、それぞれパーミッションを変更してください。
    ファイル名 概要 転送モード パーミッション *1
    download/ ディレクトリ - (701 or 705) or 707 or 777
    file/ ファイルディレクトリ バイナリモード (700 or 701) or 705 or 755 *2
    aaa.zip bbb.jpg ... ここにダウンロードしてもらうファイルをいれて転送してください *3 -
    index.html - - -
    logs/ ログ保存ディレクトリ アスキー(テキスト)モード 700 or 707 or 777
    index.html - -
    downcfg.cgi 設定ファイル 600 or 604 or 644
    download.cgi ダウンロードスクリプトファイル 700 or 705 or 755
    index.html - -
    Readme.html 取り扱い説明書(転送不要) - -
    以下自動作成されます(各ファイルのパーミッションは 600 に自動設定されます)
    logs/downlog.csv ダウンロードログファイル *4 - -
    logs/errlog.csv エラーログファイル *4 - -
    count.cgi 総ダウンロード回数保持ファイル *5 - -
    denyip.cgi 多重ダウンロード防止用ファイル *5 - -
    loginlog.cgi ログイン記録ファイル *5 - -
    *1
    基本的にサーバで指定されたパーミッションに変更してください。
    オーナー権限で実行される(suEXEC が実装されている)サーバは、一番左側のパーミッションで動作すると思われます。
    一番左側のパーミッションで動作しない場合にはそれぞれ右のパーミッションに変更してください。
    「-」のパーミッションは設定不要です。
    *2
    ファイルディレクトリのパーミッションを 700 にして動作するサーバの場合(オーナー権限で動作)、CGI から呼ばれたときにだけダウンロードされます。
    これは、この CGI を通さないでファイルディレクトリ内にあるファイルに直接アクセスされてもアクセス権が無いため、直リンクを防止することができますので、正確なダウンロード数を取得することができます。(ファイルの保護にもなります)
    オーナー権限以外で動作するサーバの場合、ファイルを直接呼び出すだけなので 701 でも可能ですが、ファイルチェック等でディレクトリ内を読み取りますので 705 か 755 として読み取りと実行権を与えてください。
    *3
    ダウンロードしてもらうファイルがテキストファイルの場合はアスキーモードで転送してください。
    *4
    現状のログが分割指定で指定した時に日付付きのログファイルが作成されます。
    *5
    使用する場合のみ作成されます。

    設置完了確認

    設置が完了しましたら download.cgi にアクセスしてください。パスワード入力フォームが表示されれば設置完了です。
    表示されない場合は perl のパス、downcfg.cgi の設定、パーミッションを確認してください。FAQ

    表示されましたら、パスワード入力フォームに downcfg.cgi で設定したパスワードを入力してログインしてください。
    セッションの管理にクッキーを使用していますので、ブラウザの設定でクッキーの受け入れを有効にしておいてください。有効にしないとログイン後のモード切替等ができません。

    正常にログインされるとファイル保存ディレクトリにあるファイル一覧と設定のチェック結果が表示されます。表示例
    設定項目に [NG] が表示されている時は、downcfg.cgi 内の該当する設定記述を見直してください。

    ※ダウンロードログファイルが存在する場合は、ダウンロード結果表示が優先されて表示されますので、モード切替で「File Info」を選択してください。

    ダウンロードリンクの作成

    ファイルディレクトリにあるファイルを、download.cgi の引数に ?name=xxx.xxx として name= にファイル名を記述してリンクを作成してください。ファイル名には必ず拡張子もつけてください。

    <a href="http://www.example.com/cgi-bin/download/download.cgi?name=aaa.zip">ダウンロード</a>
    
    <a href="../cgi-bin/download/download.cgi?name=bbb.jpg">ダウンロード</a>
    

    ダウンロードに指定できるファイル名は半角英数字、ハイフン、ドット、アンダースコア (0-9 A-Z a-z - . _) のみ使用できます。指定された文字以外が含まれているファイル名の場合は、ファイルが存在していてもダウンロードすることはできませんので確認してください。

    ※管理画面にログインしてモード切替で「File Info」を選択すると該当ファイルのリンクが表示されますので参考にしてください。
    ただし、不正なファイル名や該当しないファイルの種類(許可されている拡張子以外)のリンクは表示されません。

    管理画面の使用方法

    クッキーの受け入れを有効にしておいてください。受け入れ拒否の状態ではログイン以降の操作が行えません。

    ログの並び順(昇順、降順)を変えたい場合は、ログ番号上部の No. をクリックすると変更されます。
    1ページ内の表示件数を指定する場合は、「view」のドロップダウンメニューから変更することができます。
    指定した表示件数を超えた場合は、ページ切り替え用のリンクが表示されます。表示件数が多い場合、直接移動のリンクは一部省略されます。

    Log Name に指定したログファイルを Select Mode のアクションをします。
    日付とファイル名を指定する場合は、それぞれドロップダウンメニューから選択してください。

    「ALL DATE」「ALL FILE」以外の組み合わせで該当するログがない場合は全て表示されます。その時はドロップダウンメニューの「ALL DATE」「ALL FILE」以外のメニューリストは消えますので、再度の「ALL DATE」「ALL FILE」の状態でモード切り替えをしてください。

    ログ内のホスト名の項目にあるホスト名のリンクをクリックすると、そのホスト名がダウンロードしたログのみ表示します。(ホスト名解析)
    このときに表示件数を切り替えるドロップダウンメニューの横にチェックボックスが表示されますので、Host Search に表示されているホストがダウンロードした日付やファイルを表示する場合は、チェックボックスのチェックを入れた状態でモード切り替えをしてください。
    また、ホスト名解析(「Host Search」にホスト名が表示されている状態)を解除する場合は、チェックを外してモード切り替えをしてください。

    モード切替の「Delete」を選択すると Log Name に表示されているログを削除します。削除時には誤って削除しないように削除確認のダイアログが表示されます。なお、JavaScript が無効の場合は「Delete」の表示はされません。

    モード切替の「Download」を選択すると Log Name に表示されているログをダウンロードします。

    設定項目の [総ダウンロード回数保持ファイル] を記述して設定された場合、モード切替に「Total Count」が追加されます。
    このモードは、通常のログはログファイル単位での解析になりますが、今までにダウンロードされたファイルの総ダウンロード数が表示されます。
    ここに記録されるログは、ファイル名、総ダウンロード数、初めてダウンロードされた日付、最後にダウンロードされた日付です。
    ただし、途中からこのファイルを有効にした場合はその時点からの総ダウンロード数になります。

    モード切替の「File Info」を選択するとファイルディレクトリにあるファイルの一覧、設定のチェック結果が表示されます。
    また、ログファイルが無い場合には自動的にこのモードに切り替わります。

    モード切替の「Logout」を選択するとログアウトして管理画面を終了します。ブラウザを全て終了した場合にもログアウトした状態になります。パスワード、現在のセッションの状態は一時クッキーに保持され、ログアウトしたときに破棄されます。

    その他

    ダウンロードしてもらうファイルのサイズが 5 MB 以上の場合は、CGI の負荷を減らすために URL モードに指定することをおすすめします。

    count.cgi, loginlog.cgi, denyip.cgi は管理画面からダウンロード、削除することはできませんので、FTP 上にて行ってください。
    ※オーナー権限以外で動作されている場合、このファイルは CGI 自身が作成していますので削除のみ行えます。(ローカルからこのファイルを別途アップロードされた場合はこの限りではありません)

    [PR] 世界にたった一つ、あなただけのドメインを登録しよう!