ミニバードでAWStats 訪問者数が常に1の場合の対処法 utf8問題追補版

この記事は「家づくり満足度.com開発者の雑記」で記載した記事の追補版です。
「家づくり満足度.com開発者の雑記」は、遅くとも今年7月末には閉鎖予定ですので、当ブログに追補版を投稿しました。

【変更点】

  1. 諸所の表記の修正
  2. utf8コードの正しい記述方法を最後に追加

ミニバードでも使えます

格安レンタルサーバーミニバードでは、独自のアクセス解析を提供しています。しかし、お世辞にも高機能とは言えません。そこで、高機能で見やすいAWStatsが登場します。しかも無料です。

AWstatsイメージ

インストール手順

まずは公式サイトから安定版の圧縮ファイルをダウンロードします。

圧縮ファイルを解凍すると、awstats-7.4というフォルダが出来ます。中でも使用するフォルダは、以下のもののみです。

  • awstats-7.4\wwwroot\cgi-bin
  • awstats-7.4\wwwroot\icon
  • awstats-7.4\tools\urlaliasbuilder.pl

※「urlaliasbuilder.pl」はURLのタイトルを取得するプラグイン。
設定方法はこのサイトでは割愛。AWStatsインストール – さくらインターネット | BoozyWoozyでご確認ください。

confファイルの編集

続いて、設定ファイルを編集します。
「awstats.model_jp.conf」を「awstats.貴方のサイト名.conf」にリネームします。

生ログのパスを指定

conf ファイルの51行目あたりの
LogFile="/var/log/httpd/mylog.log"

LogFile="/home/アカウント/ドメイン名/log/ドメイン名.access_log_%YYYY-24%MM-24%DD-24"
に書き換えます。

*ミニバードは毎朝6時ごろ前日のアクセスログが更新されます。
そのため、私の場合は毎朝7時頃にcronを実行しています。

ドメイン名の指定

conf ファイルの162行目あたりの
SiteDomain=""

SiteDomain="貴方のドメイン名"
に書き換えます。

実行ファイル(本体)を設置するディレクトリを指定

conf ファイルの220行目あたりの
DirCgi="/cgi-bin"

DirCgi="/awstats" *設置するディレクトリ名
に書き換えます。

iconディレクトリのパスを指定。

conf ファイルの230行目あたりの
243行:DirIcons=”/icon”

243行:DirIcons=”/awstats/icon“
に書き換えます。

LogFormatの変更

Awstatsのデフォルトの LogFormatは「LogFormat=1」になっています。しかしこのままだとアクセス元IPがうまく解析できません。

具体的には、アクセス元IPが常にひとつで、訪問者が1のままになります。

原因はミニバードのアクセスログの先頭に常にVirtualHostName(貴方のドメイン名)が付いてしまうからです。したがって、conf ファイルの130行目あたりを

LogFormat=1

LogFormat="%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot" と書き換えます。

つまり、ミニバードのアクセスログの形式をAwstatsに認識させます。

先頭に%virtualnameを追記しないと、貴方のドメインがアクセス元の%host に勘違いされてしまいます。これが、訪問者が常に 1 のままになってしまう原因です。

ファイルの転送

ルートディレクトリに「awstats」というディレクトリを作成。
awstatsディレクトリに

  • awstats-7.4\wwwroot\cgi-bin の直下のファイルを全て転送
  • awstats-7.4\wwwroot\iconフォルダごと転送
  • awstats-7.4\tools\urlaliasbuilder.plというファイル

「urlaliasbuilder.pl」の設定方法は、このサイトでは割愛。
設定方法は、AWStatsインストール – さくらインターネット | BoozyWoozyでご確認ください。

cronの設定

/home/アカウント名/ドメイン名/public_html/awstats/awstats.pl -config=ドメイン名 -update

というコマンドを6時以降に実行するように設定します。以上でミニバードでAWStatsが正常に動くはずです。

ただしこのコマンドだと、awstats.plの実行ログが毎日、登録メール宛に届きます。それが不要なら、一番最後に 1> /dev/null を追加してください。

■参考サイト

urlaliasbuilder.plのutf8の正しい表記

上記参考サイトAWStatsインストール – さくらインターネット

[Jcode::convert(\$newAliasEntry, ‘utf8’);]を追加

と記載されていますが、これは間違いです。

正しくは

Jcode::convert(\$newAliasEntry, 'utf8');

です。
シングルクォーテーションの表記が間違っています、
urlaliasbuilder.plがうまく作動しない場合、正しい方をコピペしてみてください。

※関連記事