at works - access cgi - readme - setup


Last Updated 2006.02.14

  1. access cgi - 解説
  2. access cgi - 設置手順
  3. access cgi - 追加設置
  4. access cgi - 記録設定
  5. access cgi - 表示設定
  6. access cgi - 照合設定
  7. access cgi - 動作解説
  8. access cgi - 更新履歴
  9. access cgi - FAQ

access cgi - 設置手順


1:設置手順:はじめに

各種ファイルの設定及び転送は、必ず文字コード Shift-JIS の環境で行ってください。

access cgi は、文字コード Shift-JIS で正常動作する様に作られています。各ファイル(*.cgi 、*.ini 、*.pl 、*.html)の設定等は、必ず文字コード Shift-JIS にて作業、保存し、Shift-JIS のまま無変換で FTPクライアント等にてサーバに転送してください。

テキストエディタ等の推奨設定例は、access cgi 配布サイトの at works - cgi tips を参照してください。


2:設置手順:ファイル構成

配布ファイルを解凍して作成されるファイルは、以下の通りです。

初期配置

./access_cgi/
replist.cgi …… 解析リスト表示スクリプト (ver.4.14 update)
report.cgi …… アクセス情報記録スクリプト (ver.4.13 update)
common.ini …… 共通設定ファイル (ver.4.00 update)
replist.ini …… 表示設定ファイル (ver.4.00 new)
report.ini …… 記録設定ファイル (ver.4.00 new)
./access_cgi/data/
admincheck.cgi …… 管理者チェック用ファイル (ver.4.00 new) (*1)
checklist.cgi …… アクセスチェック設定リスト (ver.4.00 update & rename)
titlelist.cgi …… タイトル表示置換リスト (ver.4.00 update & rename)
default.ini …… 個別設定ファイル (ver.4.00 new)
./access_cgi/data/default/
accesslog.cgi …… 現行ログファイル (ver.3.00 rename) (*1)
./access_cgi/extlib/
jcode.pl …… 日本語コード変換ライブラリ (*2)
./access_cgi/lib/
CheckCode.pl …… 文字コード処理ライブラリ (ver.4.10 update)
CheckData.pl …… 記録チェック処理ライブラリ (ver.4.00 new)
CheckVersion.pl …… Version Check 処理ライブラリ (ver.4.13 update)
FileLock.pl …… ファイルロック処理ライブラリ (ver.4.10 new)
./access_cgi/lib/replist/
DataLoad.pl …… データ集計処理ライブラリ (ver.4.10 update)
DataTable.pl …… データテーブル処理ライブラリ (ver.4.10 update)
DataText.pl …… データ表示加工処理ライブラリ (ver.4.13 update)
EditLog.pl …… ログデータ編集処理ライブラリ (ver.4.00 new)
EditTitle.pl …… タイトル編集処理ライブラリ (ver.4.14 update)
LogExt.pl …… 外部ログデータ取得処理ライブラリ (ver.4.13 update)
LogFile.pl …… ログファイル取得処理ライブラリ (ver.4.00 new)
Template.pl …… テンプレート出力処理ライブラリ (ver.4.13 update)
./access_cgi/plugins/
agent.pl …… UserAgent解析プラグイン (ver.2.80 〜) (*3)
search.pl …… 検索エンジン解析プラグイン (ver.2.80 〜) (*3)
transform.pl …… 文字列変換プラグイン (ver.4.00 new)
ApacheLog.pl …… 外部ログフォーマット取得プラグイン (ver.4.00 new)
./access_cgi/template/
replist.html …… 解析リスト表示用 HTMLファイル (ver.4.00 update & rename)
replist.css …… 解析リスト表示用 CSSファイル (ver.4.00 update & rename)
script.css …… メッセージ表示用 CSSファイル (ver.4.00 update)
w_bar.jpg …… 棒グラフ(横軸)用画像ファイル (ver.2.40 update)
h_bar.jpg …… 棒グラフ(縦軸)用画像ファイル (ver.2.40 update)
./
report.js …… 外部 JavaScript ファイル (ver.4.00 update)

各ファイル注釈

旧バージョンからの入れ換え

制限や手順等については、「FAQ - 基本:旧バージョンからの入れ換え」を参照してください。


3:設置作業:cgi ファイルの設定

report.cgi 及び replist.cgi の設定を行います。

3-1:report.cgi の設定

3-2:replist.cgi の設定


4:設置作業:common.ini の設定(基本設定)

common.ini の設定を行います。

4-1:ファイルロック設定

ログファイルへの記録時やログデータ編集時にログデータの破損を防ぐ為、ファイルロック処理を行うか否かの設定です。初期設定ではファイルロックを行わない設定になっていますが、特別な理由の無い限り、ファイルロック処理を行うことをお薦めしておきます。(但し、稀にファイルロックを利用していても、サーバの不調等によりログデータを破損してしまうことがあります)

通常は symlink関数式が利用可能です。(UNIX 系サーバでは symlink関数式、WinNT 系では mkdir関数式が利用できます)

4-2:ログファイル設定

初期設定では現行ログファイルとは別に、日別ログファイルと月別集計ファイルを作成する仕様になっています。この2種類のログファイルを必要としない場合は、以下の設定を変更してください。

利用可能な容量の少ないサーバに設置する場合は、日別ログファイルを作成しない設定にしてください。

各種ログファイル注釈

access cgi で利用する各ログファイルは、各々で記録しているデータが異なります。

各種ログファイル削除

日別ログファイル及び月別集計ファイルは、report.cgi がログファイルディレクトリ内に作成します。

必要ではなくなった日別ログファイル及び月別集計ファイルを削除したい場合は、FTPクライアント等を使用して該当する日別ログファイル又は月別集計ファイルを削除してください。

日別ログファイルは、古くなった分から定期的に削除することをお薦めしておきます。


5:設置作業:ファイルの転送及びパーミッションの設定

各ファイルをサーバに転送します。下記は、cgi-bin ディレクトリの下に置いた場合の設置例です。

  cgi-bin /
    |
    +- access_cgi / replist.cgi …… テキストモード(アスキーモード):705
         |          report.cgi …… テキストモード(アスキーモード):705
         |          common.ini …… テキストモード(アスキーモード):604
         |          replist.ini …… テキストモード(アスキーモード):604
         |          report.ini …… テキストモード(アスキーモード):604
         |
         +- data / admincheck.cgi …… テキストモード(アスキーモード):606
         |    |    checklist.cgi …… テキストモード(アスキーモード):604
         |    |    titlelist.cgi …… テキストモード(アスキーモード):606
         |    |    default.ini …… テキストモード(アスキーモード):604
         |    |
         |    +- default / accesslog.cgi …… テキストモード(アスキーモード):606
         |
         +- extlib / jcode.pl …… テキストモード(アスキーモード):604
         |
         +- lib / CheckCode.pl …… テキストモード(アスキーモード):604
         |    |   CheckData.pl …… テキストモード(アスキーモード):604
         |    |   CheckVersion.pl …… テキストモード(アスキーモード):604
         |    |   FileLock.pl …… テキストモード(アスキーモード):604
         |    |
         |    +- replist / DataLoad.pl …… テキストモード(アスキーモード):604
         |                 DataTable.pl …… テキストモード(アスキーモード):604
         |                 DataText.pl …… テキストモード(アスキーモード):604
         |                 EditLog.pl …… テキストモード(アスキーモード):604
         |                 EditTitle.pl …… テキストモード(アスキーモード):604
         |                 LogExt.pl …… テキストモード(アスキーモード):604
         |                 LogFile.pl …… テキストモード(アスキーモード):604
         |                 Template.pl …… テキストモード(アスキーモード):604
         |
         +- plugins / agent.pl …… テキストモード(アスキーモード):604
         |            search.pl …… テキストモード(アスキーモード):604
         |            transform.pl …… テキストモード(アスキーモード):604
         |            ApacheLog.pl …… テキストモード(アスキーモード):604
         |
         +- template / replist.html …… テキストモード(アスキーモード):604
                       replist.css …… テキストモード(アスキーモード):604
                       script.css …… テキストモード(アスキーモード):604
                       w_bar.jpg …… バイナリモード:604
                       h_bar.jpg …… バイナリモード:604

サーバによっては、パーミッションが予め指定されていたり、一部のパーミッションが禁止されていたりする事があります。設置するディレクトリも含めてパーミッションは、必ずサーバ管理者の指示に従って設定を行ってください。cgi-bin ディレクトリの設置自体を制限しているサーバもあります。


6:設置作業:ログファイルディレクトリのパーミッションの設定

FTPクライアント等を使用して、ログファイルディレクトリのパーミッションを 707 に設定してください。下記は、cgi-bin ディレクトリの下に置いた場合の設置例です。

  cgi-bin /
    |
    +- access_cgi /
         |
         +- data /
         |    |
         |    +- default / …… :707
         |
         +- extlib /
         |
         +- lib /
         |
         +- plugins /
         |
         +- template /

サーバによっては、パーミッションが予め指定されていたり、一部のパーミッションが禁止されていたりする事があります。その場合は、サーバ管理者の指示に従ってください。


7:設置作業:ロックファイルディレクトリの作成及びパーミッションの設定

ファイルロック機能を利用する設定では、FTPクライアント等を使用して直下に lock ディレクトリを作成する作業が必要です。lock ディレクトリのパーミッションは 707 に設定してください。下記は、cgi-bin ディレクトリの下に置いた場合の設置例です。

  cgi-bin /
    |
    +- access_cgi /
         |
         +- data /
         |
         +- extlib /
         |
         +- lib /
         |
         +- plugins /
         |
         +- template /
         |
         +- lock / …… :707

サーバによっては、パーミッションが予め指定されていたり、一部のパーミッションが禁止されていたりする事があります。その場合は、サーバ管理者の指示に従ってください。


8:設置作業:JavaScript の設置

JavaScript の設定には、解析対象ページの外部ファイルとして設置する方法と、解析対象ページに直接記述する方法の2種類があります。

8-1:外部 JavaScript ファイル

配布ファイルに同梱されている report.js を、解析対象ページと同じディレクトリに設置します。

1:JavaScript ファイルの修正

report.js の ./cgi-bin/access_cgi/report.cgi の部分を、解析対象ページから設置した report.cgi への URI でサーバの仕様に合わせて相対パス又は http:// からの指定に修正してください。

var cgi = './cgi-bin/access_cgi/report.cgi?';
var dir = 'dir=default';
var pix = 'pix=' + screen.width + 'x' + screen.height + 'x' + screen.colorDepth;
var ref = 'ref=' + document.referrer;
var req = 'req_title=' + encodeURI(document.title);
var dat = dir + '&' + pix + '&' + ref + '&' + req;
document.write('<img src="' + cgi + dat + '" width="1" height="1" alt="" />');

2:JavaScript ファイルの設置

report.js を、解析対象ページと同じディレクトリに設置してください。

3:report.js ファイルを解析対象ページで指定

設置した report.js を読み込む指定を、解析対象ページの <body>〜</body> 間に記述してください。

<script type="text/javascript" src="report.js"></script>

各ファイルの関係に注意して URI を記述してください。

4:複数の解析対象ページがある場合

report.js 内の ./cgi-bin/access_cgi/report.cgihttp:// からの URI に修正して、report.js を適当なディレクトリに設置、各ページから相対パス又は http:// で report.js を指定すると良いでしょう。

8-2:JavaScript の直接記述

下記 JavaScript を、解析対象ページの <body>〜</body> 間に記述してください。./cgi-bin/access_cgi/report.cgi の部分は、解析対象ページから設置した report.cgi への URI でサーバの仕様に合わせて相対パス又は http:// からの指定に修正してください。

<script type="text/javascript">
<!--
var cgi = './cgi-bin/access_cgi/report.cgi?';
var dir = 'dir=default';
var pix = 'pix=' + screen.width + 'x' + screen.height + 'x' + screen.colorDepth;
var ref = 'ref=' + document.referrer;
var req = 'req_title=' + encodeURI(document.title);
var dat = dir + '&amp;' + pix + '&amp;' + ref + '&amp;' + req;
document.write('<img src="' + cgi + dat + '" width="1" height="1" alt="" />');
// -->
</script>

上記は XHTML1.1 用の記述です。HTML4.01 では、9行目の行末を alt="" >'); としてください。

8-3:フレームを含むページをアクセス解析の対象とする場合

親フレームのアドレスをアクセス解析の対象とする場合は、下記の様に修正してください。

var ref = 'ref=' + parent.document.referrer;

8-4:JavaScript 非対応ブラウザの情報を取得

解析対象ページが Strict DTD で無い場合は、下記を併用することが可能です。

<noscript>
<img src="./cgi-bin/access_cgi/report.cgi?dir=default" width="1" height="1" alt="" />
</noscript>

解像度及びリンク元とリクエストURIタイトルは取得できません。リクエストURIタイトルのみ、URIエンコードで指定できるのであれば、下記の様な記述で取得も可能です。(例は Movable Type)

<noscript>
<img src="./cgi-bin/access_cgi/report.cgi?dir=default&amp;req_title=<$MTBlogName encode_uri="1"$>: <$MTEntryTitle encode_url="1"$>" width="1" height="1" alt="" />
</noscript>

9:設置作業:動作確認

“動作解説”を参照して、動作確認を行ってください。

report.cgi 及び replist.cgi の最後に ?check を追加し、report.cgi?check 又は replist.cgi?check として呼び出した場合は、著作権情報と CGI Script の version 、優先的に使用される文字コード変換ライブラリが表示されます。

正常に動作したならば、access cgi の設置作業はこれで終了です。

9-1:追加設置

Perl 5.6 での設置/複数設置/閲覧専用設置/カウンター表示については、“追加設置”を参照してください。

9-2:詳細設定

他の設定については、“記録設定”と“表示設定”及び“照合設定”を参照してください。

9-3:FAQ

正常に動作しない場合は、“FAQ”を参照して設置状況や設定を見直してみてください。


10:設置作業:SSI での利用

SSI を利用してのアクセス情報取得も行えます。

10-1:SSI 利用の作業手順

アクセス解析の対象となるページの <body>〜</body> 間に、SSI 用の記述を行ってください。

<!--#include virtual="/cgi-bin/access_cgi/report.cgi?default+ssi"-->

/cgi-bin/access_cgi/report.cgi の部分は report.cgi の場所を、設置したサーバの仕様に合わせて相対パス又はフルパスにて指定してください。

10-2:SSI 利用時の注意点

SSI を利用しての取得には、以下の利点が有ります。

  1. 訪問者が JavaScript を off にしている環境でもアクセス情報が取得できます。
  2. 訪問者が JavaScript を利用できない UserAgent を使用してる環境でもアクセス情報が取得できます。

SSI を利用しての取得には、以下の欠点があります。

  1. 解像度情報は取得できません。
  2. リクエストURIタイトルは取得できません。
  3. cookie を利用したチェックは一切行えません。(管理者 IPアドレスチェックは利用可能)
  4. 画像連結ライブラリを利用したアクセスカウンターは表示できません。(テキストカウンターは表示可能)
  5. 検索ロボット、更新チェックツール、巡回ツール、アンテナ等のアクセス情報が全て記録されてしまいます。(@ex_ua 設定にて除外可能)


http://atworks-online.net/