1. 概要・ports
細かな解析ができる点ですぐれてはいますが、「analog」は 2009年以降、日本のユーザ会の活動が停止しているようで、最新バージョンを日本語化することが困難な状況になっています。
2020年に、すこしリビジョンが変わりましたが、それは、依存するモジュールが変わったため、動作を保証するためのようです。
メンテナの方のご苦労に感謝いたします。
わたしとしては今後は、「webalizer」か「awstats」を使用することをお勧めしているのですが、ずいぶん前のバージョンの「analog」のページにアクセスする方がたくさんいらしているようなので記述することにします。
cd /usr/ports/www/analog/
make
make install
オプションは「DOCS」「EXAMPLES」のみなので、特に変更の必要はありません。
インストール時のメッセージを記録しておきます。
(「FreeBSD 12.2 RELEASE」のときから変わっていません)
===> Installing for analog-6.0_12,1
===> Checking if analog is already installed
===> Registering installation for analog-6.0_12,1
Installing analog-6.0_12,1...
Note: Analog includes an optional form and perl script to request
analyses via a web interface. The form and script both require
customization before use. If you would like to use them, first copy
/usr/local/share/examples/analog/etc/anlgform.pl to $$CGI-BIN, and then edit
$$HTDOCS/anlgform.html and $$CGI-BIN/anlgform.pl for your local
configuration. Both files are extensively commented with instructions
for customization.
2. analog.cfg の編集
コンフィグレーションファイルを編集します。
vi /usr/local/etc/analog.cfg
以下の項目について編集します。
前半の方に同様の記述があって書き換える部分が
LOGFORMAT COMBINED
LOGFILE /var/log/httpd-access.log ← ログファイル名が異なる場合は編集します
# LOGFILE /old/logs/access_log.*
# OUTFILE Report.html
# HOSTNAME "[my organisation]" ← コメントをはずしてホスト名を入力します
「apache」のログファイル名は、「FreeBSD」のデフォルトでは、「/var/log/httpd-access.log」になっているはずです。
「/usr/local/etc/apache/httpd.conf」で、ログファイル名を変更している場合は、それに合わせて変更します。
「/etc/newsyslog.conf」で「apache」のログをローテーションさせている場合は、ローテーションさせた以前のログもまとめて解析したいと思うかもしれません。
その場合は、「LOGFILE /var/log/httpd-access.log*」と最後に「*」をつけてください。
以前のログもまとめて解析してくれます。
末尾に以下をの行を加えます。
日本語でドメインを表示するためのファイルです。
「UTF-8」でのファイルになりますので文字コードが違う場合は適宜合わせてください。
DOMAINSFILE /usr/local/share/analog/lang/jpudom.tab
3. /usr/local/www/cgi-bin/anlgform.pl の編集
/usr/local/share/examples/analog/anlgform.pl
を「CGI」実行ディレクトリにコピーして、実行権限を付け、編集します。
cp /usr/local/share/examples/analog/anlgform.pl /usr/local/www/apache24/cgi-bin/.
chmod +x /usr/local/www/apache24/cgi-bin/anlgform.pl
vi /usr/local/www/apache24/cgi-bin/anlgform.pl
少々長いですが、最初から31行目くらいまでを引用します。
#!/usr/bin/perl -T
###
### analog 6.0 http://www.analog.cx/
### This program is copyright (c) Stephen R. E. Turner 1995 - 2004 except as
### stated otherwise.
###
### This program is free software. You can redistribute it and/or modify it
### under the terms of version 2 of the GNU General Public License, which you
### should have received with it.
###
### This program is distributed in the hope that it will be useful, but
### without any warranty, expressed or implied.
### Remember: Even the most carefully-designed CGI programs can accidentally
### have serious security bugs! See docs/form.html for notes on security
### design.
###
### anlgform.pl; the cgi front end for analog
# 1) uncomment (remove everything before $analog) and edit one of the next two
# lines to give the location (full pathname) of the analog executable.
# Unix: $analog = '/usr/local/etc/httpd/analog-6.0/analog';
# Windows: $analog = 'C:\program files\analog 6.0\analog.exe';
# 2) If you're on Unix, edit the first line in this file to give the location
# of Perl (don't remove the #! though).
# 3) You also need to edit anlgform.html if you want to use the form.
# 4) Add to the forbidden commands below if you want.
@forbidden = qw(LOGFORMAT APACHELOGFORMAT DEFAULTLOGFORMAT
APACHEDEFAULTLOGFORMAT HEADERFILE FOOTERFILE UNCOMPRESS
OUTFILE CACHEOUTFILE LOCALCHARTDIR ERRFILE DNS CGI
SETTINGS PROGRESSFREQ LANGFILE DESCFILE);
修正するのはごくわずかです。
FreeBSD の場合、1行目を以下のように書き換えます。
#!/usr/local/bin/perl -T
26行目の
# 4) の行の下に、
$analog = '/usr/local/bin/analog';
という1行を追加します。
29行目の「APACHEDEFAULTLOGFORMAT」の1語を削除します。
@forbidden = qw(LOGFORMAT APACHELOGFORMAT DEFAULTLOGFORMAT
HEADERFILE FOOTERFILE UNCOMPRESS
OUTFILE CACHEOUTFILE LOCALCHARTDIR ERRFILE DNS CGI
SETTINGS PROGRESSFREQ LANGFILE DESCFILE);
4. jpuform.html の編集
「UTF-8」で「analog」のレポート編集用の画面を作成します。
置き場所を仮に「/usr/local/www/apache24/data」として(外部からアクセスできないようなディレクトリが望ましい)、コピーして編集します。
cp /usr/local/share/analog/lang/jpuform.html /usr/local/www/apache24/data/.
vi /usr/local/www/apache24/data/jpuform.html
編集するのは次の個所です。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Analog フォーム・インタフェース</title>
</head>
<body>
<h1><!-- img src="/images/analogo.gif" alt="" --> Analog フォーム・インタフェース</h1>
<!-- 以下を編集すること。anlgform.pl も編集する必要がある。 -->
<!-- 最初に、上記の img タグのコメントを取り、必要なら編集しなさい。 -->
<!-- 次に、サーバ内での anlgform.pl の正しい位置を反映するように編集して -->
<!-- 以下の行のコメントを削除しなさい。 -->
<!-- form action="/cgi-bin/anlgform.pl" method="POST" -->
<!-- 多くのシステムでは、IMAGEDIR が /cgi-bin/ 中に無いようにしたいために、 -->
<!-- フォーム上の IMAGEDIR はコマンドライン上での指定とは異なるようにしている。 -->
<!-- input type=hidden name="IMAGEDIR" value="/images/" -->
<!-- 他の環境設定ファイルを以下で指定できる。 -->
<!-- input type=hidden name="cg" value="/analog/other.cfg" -->
<!-- あるユーザの設定では、ログファイルは以下のようになるでしょう。 -->
<!-- input type=hidden name="LOGFILE" value="/usr/local/apache/logs/access_log" -->
<!-- これらを編集した後、以下の赤で "強調" した行を削除して下さい。 -->
<input type=hidden name="LANGUAGE" value="JAPANESE-UTF">
<hr>
<h2>1. レポートの選択</h2>
<strong><font color=red>注意 : 以下の指示に従って環境を設定し終わるまで、
このフォームは動作しないでしょう。例えば、ボタンさえ現れないかもしれません。
環境設定を終了した後、この文節を削除してください。<br>
</font></strong>
「CGI」の起動を有効にします。16行目のコメントを解除します。
<form action="/cgi-bin/anlgform.pl" method="POST">
不要なコメントを削除します。
<strong><font color=red>注意 : 以下の指示に従って環境を設定し終わるまで、
このフォームは動かないでしょう。例えば、ボタンさえ現れないかもしれません。
環境設定を終了した後、この文節を削除してください。<br>
</font></strong>
を
<!-- <strong><font color=red>注意 : 以下の指示に従って環境を設定し終わるまで、
このフォームは動かないでしょう。例えば、ボタンさえ現れないかもしれません。
環境設定を終了した後、この文節を削除してください。<br>
</font></strong> -->
で、コメントアウトします。
5. apache の設定の確認
「apache」で、「cgi」が動作することを事前に確認します。
詳細は「CGI を動作させる」をご参照ください。
6. 表示
これで準備完了のはずです。
「jpuform.html」を
/usr/local/www/apache24/data
に置いているならば、「http://ホスト名/jpuform.html」をブラウザで表示してみてください。