Last Updated 2006.01.31
- access cgi - 解説
- access cgi - 設置手順
- access cgi - 追加設置
- access cgi - 記録設定
- access cgi - 表示設定
- access cgi - 照合設定
- access cgi - 動作解説
- access cgi - 更新履歴
- access cgi - FAQ
access cgi - FAQ
基本 :
設置 :
トラブル対策(動作) :
トラブル対策(表示) :
改造 :
資料 :
基本
基本事項
JavaScript にて取得する処理は、透明GIF を呼び出す過程で訪問者の情報を記録しています。従って、訪問者側がブラウザの設定等で JavaScript を無効にしている環境、携帯端末等 JavaScript に対応していないブラウザを使用している環境、画像を表示させない設定にしている環境では、ログファイルに情報が記録されません。
SSI にて取得すると、訪問者側が JavaScript に対応していないブラウザを使用している環境でもログファイルに情報を記録することが可能ですが、解像度の情報は記録されません。
訪問者側の諸事情により、Proxomitron 等の Web Filter 系ソフトを利用して、アクセス解析やサーバへ本当の情報ではないデータを取得させるようにしている場合もあります。
何らかの事情によりリンク元が取得できなかった時は、リンク元を空欄で記録します。例えば、Mozilla の Bookmarks 及び Microsoft Internet Explorer のお気に入り等、ブラウザの Bookmarks 機能やそれらに類するツールを利用しての訪問では、仕様によりリンク元が取得できない事があります。(Netscape 4 系の一部 version では、[unknown origin] 又は bookmarks として取得される場合があります)
一部のブラウザには、時々一つ前の URI ではなく他のウィンドウ或いはタブに表示している URI を JavaScript やサーバに渡してしまうことがある不具合が存在しています。この為、取得したリンク元も、全く関係のない URI がログに記録されてしまっているという場合があります。
以上、上記の基本事項を念頭に置き、アクセス解析は参考値程度の情報であることを理解しておいてください。
文字コードの扱いについて
日本語文字コードの変換処理は、完全ではありません。
リンク元/リクエストURI/リクエストURIタイトルを取得して処理する際に、半角カタカナを誤判定したり、Shift-JIS にない文字だったり、文字コード処理ライブラリの変換テーブルで対応していない文字だったりすると、ログデータが文字化けします。
ログデータが文字化けした場合は、解析リストの表示にも支障がでる場合もあります。application/xhtml+xml で出力する設定にしていると、解析リスト自体が表示されなかったりします。
文字化けの影響で当該リンク元/リクエストの書換/削除が行えない時は、個別情報から削除してください。
また、チェックリンクで利用するチェックサービスやリダイレクトリンクで利用するリダイレクタの仕様により文字コードの扱いが制限され、移動したリンク元で文字化けが発生することもあります。
旧バージョンからの入れ換え
access cgi 旧バージョンからの入れ換えには、幾つかの制限があります。
旧ログファイルの継続使用
access cgi ver.1.00 〜 ver.2.81 の旧ログファイルを最新版 access cgi にて利用したい場合、下記の様になります。
- ver.1.00 〜 ver.1.07 : ログデータの仕様が異なる為、利用できません。
- ver.1.10 〜 ver.1.25 : 現行ログファイルのファイル名を report.log → accesslog.cgi と変更すれば利用可能です。
- ver.1.26 〜 ver.2.81 : 現行ログファイルのファイル名を replog.cgi → accesslog.cgi と変更すれば利用可能です。
ディレクトリ構造
ver.3.11 以前と ver.4.00 以降ではディレクトリ構造が大きく異なっています。入れ換え時の手順を簡単に紹介した“入換手順”を別途用意いたしましたので、必要な場合はそちらを参照して入れ換え作業を行ってください。
設置
設置しても上手く動作しない
以下に、設置しても上手く動作しない場合を紹介しておきます。
- 設置するサーバが UNIXサーバ でない場合は、動作を期待できません。
- パーミッション設定に制約があるサーバでは、動作を期待できません。
- 出力時に広告の表示が必須とされるサーバでは、動作を期待できません。
- ISP の付属サービスで運用されているサーバでは、動作を期待できません。
- DNS逆引きサービスを行っていないサーバでは、ホスト情報ではなく IPアドレスが記録されます。
- 転送サービスを利用している環境では、リンク元は上手く取得できません。
設置作業でのよくある間違い
以下に、設置作業でのよくある間違いを紹介しておきます。
- 配布ファイルを解凍する際に、ディレクトリ構造をそのままの状態で展開しなかった。
- *.ini ファイルの設定時に、必要な文字を削ってしまった。
- common.ini の設定と各ファイルの配置状況が異なっていた。
- report.cgi と replist.cgi で Perl へのパスが間違っている。
- *.cgi 又は *.ini ファイルを、バイナリモードでアップロードしてしまった。
- 各ファイルを Shift-JIS ではなく、他の文字コードでアップロードしてしまった。
- 各ディレクトリのパーミッション設定を間違えてしまった。
- 各ファイルのパーミッション設定を間違えてしまった。
- replist.html を同じサーバではなく、他のサーバに置いてしまった。
- 解析対象ページに記述する JavaScript を間違えてしまった。
- 解析対象ページに記述する JavaScript を <body>〜</body> 間以外の場所に記述してしまった。
- 解析対象ページに記述する JavaScript を Proxomitron 経由で加工した状態にて記述してしまった。
トラブル対策(動作)
サーバエラーが表示される
*.cgi ファイルの Perl へのパスと全てのファイルのパーミッションが正しく設定されていても *.cgi ファイルを呼び出してサーバエラーが表示される場合は、*.ini 設定か *.cgi ファイルの転送モードが間違っている可能性があります。
- 原因 : *.ini の設定か *.cgi ファイルの転送モードが間違っている。
- 対策 : *.ini の設定の見直しと、各ファイルの転送モードを確認してください。
日別ログファイル及び月別集計ファイルが作成されない
access cgi では通常の現行ログファイルとは別に、日別ログファイルと月別集計ファイルを CGI Script が自動で作成する仕様になっています。
最初に、ログファイルディレクトリのパーミッションを確認してください。
パーミッションが間違っていない場合は、CGI Script による新規ファイルの作成を禁止しているサーバに設置している可能性があります。
- 原因 : サーバが CGI Script による新規ファイルの作成を禁止している。
- 対策 : CGI Script による新規ファイルの作成を許可しているサーバを利用する。
上記の場合は、common.ini にて日別ログファイル及び月別集計ファイルを利用しない設定に変更してください。
日別ログファイル及び月別集計ファイルを選択表示できない
一部のサーバでは、サーバの仕様によりディレクトリ内のファイルを CGI Script によって正常に検索できない場合があります。
- 原因 : サーバの仕様によりログファイルディレクトリ内が正常に検索されない。
- 対策 : CGI Script によるディレクトリ内ファイルの検索を許可しているサーバを利用する。
上記の場合は、common.ini にて日別ログファイル及び月別集計ファイルを利用しない設定に変更してください。
その他
何らかの障害により、サーバへ各ファイルが正常に最後まで転送されていない可能性もあります。ローカルとサーバ上のファイルを比較してファイルサイズ等が極端に異なる様でしたら、サーバ側のファイルを削除後に再転送し直してみてください。
トラブル対策(表示)
解析リストを呼び出すと何も表示されない
replist.cgi を呼び出してパスワードを入力した後に何も表示されない場合は、replist.html の設置場所が間違っている可能性があります。
replist.cgi は replist.html を読み込んだ後に処理し出力していますので、replist.html が replist.cgi と同じサーバ上に設置され、common.ini にてその設置ディレクトリ($template_dir
)を設定しておかなければ、replist.html が処理されません。
- 原因 : replist.html の設置場所が間違っている。
- 対策 : replist.html の設置場所と common.ini の設定を確認してください。
解析リストの表示が正常に処理されない
一部のサーバでは replist.html を「バイナリモード」にて転送すると、解析リストの表示が正常に処理されない事があります。その場合はサーバ側の replist.html を削除後に「テキストモード(アスキーモード)」にて、転送し直してみてください。
- 原因 : サーバの仕様。
- 対策 : replist.html を「テキストモード(アスキーモード)」にて転送する。
棒グラフ画像が表示されない、*.css ファイルが読み込まれない
CGI 用サーバから CGI 実行用以外のファイルを呼び出し許可していないサーバに設置した場合には、各サーバの説明に従って棒グラフ画像ファイル及び CSS ファイルの設置場所を変更し、common.ini 内の設定も変更してください。
$css_dir = './template/';
…… CSS ファイル(*.css)を置いてあるディレクトリを指定してください。$image_dir = './template/';
…… 棒グラフ画像ファイル(*.jpg)を置いてあるディレクトリを指定してください。
改造
解像度ではなくウィンドウサイズを記録したい
解像度ではなくウィンドウサイズを記録したい場合は、解析対象ページの記述を変更することで可能となります。下記の例を参考にして、変更を行ってみてください。
画面の解像度(スクリーンの横幅と縦幅)を取得する記述(デフォルト)。
screen.width ←画面の横幅
screen.height ←画面の縦幅
ウィンドウサイズを取得する記述。
screen.outerWidth ←ウィンドウの横幅
screen.outerHeight ←ウィンドウの縦幅
ウィンドウ内表示可能範囲を取得する記述。
screen.innerWidth ←表示可能範囲の横幅
screen.innerHeight ←表示可能範囲の縦幅
使用可能なスクリーンの範囲(解像度からタスクバー等使用不可な部分を除いた横幅と縦幅)を取得する記述。
screen.availWidth ←使用可能なスクリーンの横幅
screen.availHeight ←使用可能なスクリーンの縦幅
解像度以外では取得される数値にばらつきが多く、集計結果が参考にならないことに注意してください。また、これらの変更については、access cgi 配布サイトの at works ではサポートいたしません。各自で調べて変更を行ってください。
CGI Script へ広告挿入用の記述を追加したい
無料サーバでは CGI サーバを利用する際に、CGI Script へ広告挿入用の記述を追加しなければいけない場合があります。access cgi では、replist.html と replist.cgi (# HTML head 出力)に記述してください。
</head>
<body>
この辺りに広告挿入用の記述を追加
但し、広告が挿入されることにより access cgi が正常に動作しなくなる可能性が高いです。
リスト表示のカスタマイズ
replist.html ファイルを編集することにより、解析リスト表示の HTML の変更が行えます。(replist.html ファイルに挿入されるデータ用の文字列は変更しないでください)
replist.html ファイルを編集する場合は、必ずテキストエディタ等で作業してください。市販のホームページ作成ソフトや HTMLエディタ等で作業した場合、replist.html ファイルに必要の無いタグが挿入されてしまい、リスト表示に支障が出ることがあります。
CSS を変更する場合は、replist.css ファイルを編集してください。
解析リスト表示の HTML と CSS は XHTML1.1 + CSS にて記述しています。詳細は、access cgi 配布サイトの at works - cgi tips にて紹介している書籍等を参照してください。
- at works : http://atworks-online.net/
棒グラフ表示の色を変更する場合は、画像処理ソフト等で棒グラフ画像ファイル(*.jpg)を処理してください。
資料
他サイトの資料
この FAQ 以外では、KENT氏の作成された FAQ を読まれることをお薦めしておきます。
- KENT'S FAQ (KENT WEB) [ http://www.kent-web.com/support/faq/ ]
下記、2ちゃんねる掲示板の投稿情報も問題解決の助けとなるでしょう。
- web制作管理@2ch掲示板 [ http://pc8.2ch.net/hp/ ]
- WEBプログラミング@2ch掲示板 [ http://pc8.2ch.net/php/ ]
- レンタルサーバ@2ch掲示板 [ http://pc8.2ch.net/hosting/ ]
下記サイトの過去ログダイジェストもお薦めです。
- 1日6hotだけど...〜過去ログダイジェスト〜 [ http://sixhot.hp.infoseek.co.jp/sixhot/ ]
UserAgent の資料
下記のサイトを参照してください。
UserAgent
- UserAgentについて [ http://c-moon.jp/useragent.shtml ]
Cellular Phone
- NTT DoCoMo (i-mode/FOMA) - ユーザエージェント一覧 [ http://www.nttdocomo.co.jp/p_s/imode/spec/useragent.html ]
- Vodafone (J-PHONE) - ユーザーエージェント一覧 [ http://developers.vodafone.jp/dp/tech_svc/info/useragent.php ]
- au (Tu-Ka) EZweb - 技術情報 [ http://www.au.kddi.com/ezfactory/tec/spec/4_4.html ]
- WILLCOM [ http://www.willcom-inc.com/ ]
- ASTEL - 機種スペック [ http://www.yozan.co.jp/asteltokyo/doti/siyou/jyokyo.htm ]
Robot
- robotはぢきについて [ http://c-moon.jp/robots.shtml ]
- List of Known Robot User-Agent Fields [ http://support.free-conversant.com/2701 ]
- List of User-Agents (Spiders, Robots, Browser) [ http://www.psychedelix.com/agents.html ]