私のパソコン雑記帖

アクセス解析 フリーCGI Mogura の利用例

カテゴリー: フリーCGI
01Dec2008⇒2Jun2011更新

経緯

現在 XREA 標準の AccessAnalyzer を使用しています。機能的にはほぼ満足していますが、広告免除費が2000円/年というのは、XREA 本体のサービスが全体的に安いのに比べ割高感があります。特に管理しているサイトが複数で個別にチャージがかかると結構高くつきます。ということで、フリーの CGI を探してみました。


結果として Mogura を使用してみることに・・・

  1. Mogura の公式?サイト ここからのダウンロードが最新版のようです。もっとも 2006/9/11 で一寸古いのですが、どうもこれ以降更新していない様子。 Mogura⇒使用方法 Mogura⇒サポートBBS が参考になりました。

  2. PEAR が用意されていないサーバー環境では・・・・・・
    PEAR および DB をダウンロードしてきて、PEAR.phpとDB.phpがある階層をそれぞれ Mogura のフォルダ直下にロードする必要があります。参照
    PEAR 同梱の Mogura Script を提供しているサイトもありましたが試してみたところ一発ではうまくいきませんでした。参照

  3. writelog.php 430行のあたりにある"カウンター増加"のところで、
    if($write_flg && !$u){  とあるところを、
    if($write_flg && $res->fetchRow()){  と書き換えないとカウントアップがうまく表示できませんでした。参照

  4. プラグインで有用なのは・・・・・
    "月別解析" "月推移解析"  参照    プラグイン設定方法の説明はついていませんが、
    month.php transit.php を plugin フォールダにロード。"コントロールパネル"⇒"アクション設定"⇒"メニューリスト"でファイル名(month,transit)を登録するだけ。
    この他にもホスト別解析ヘルプファイル、等がありました。

  5. ログ取得用のコードは "JavaScript and Image" を使用。あわせて config.php で、PHPログ取得モードを "1" に設定(説明がよくわからなかったのですが)。拡張子がphp以外となっていますが、そんなことはないようです(phpで使う時は、" を \" に変換)。"PHP" と銘打ったコードだと、検索エンジンや検索ワードが取得出来ないようでした。

  6. Mogura に切替える時、それまでのカウンターログを引き継ぎたいことがありますが、その為に便利なコードを提供しているサイトがありました。参照
    元のままだと、数字を下げることができないので、一部コードを変換してそれも可能にしました。

  7. スキンが好みに合わないので変更しました。同じ形式でカラーイメージだけ変えたものを3種 mogura_blue mogura_brown mogura_green 用意。下図は mogura_blueのサンプル。 ・・・このスキンに必要な image file を"images" に追加しています。このスキンは固定幅を採用していますが、plugin の中で eng.php time.php は幅がはみ出ます。そこでコードの一部を変更して固定幅に合わせました。
    デフォルトで入っているスキン mogura は残したほうがいいようです。特にインストール後最初にコントロールパネルを開く時は、これがないとうまく行きませんでした。

  8. 大体以上が利用にあたって必要なことがらです。まだ余り使用実績がありませんが、これまでのところ AccessAnalyzer と比較してみると、閲覧時間の表示が無い点を除くと、Mogura の方が機能的には優れていると思います。

以上利用にあたって必要なことがらを、mogura-all-in-one に一括しました。

  • 上記2 PEAR と DB を同梱。
  • 上記3 writelog.php 書き換え済み。
  • 上記4 月別解析(month.php)、月推移解析(transit.php)、ホスト別解析(host.php)、ヘルプファイル(ahelp_*.php)を同梱(インストール後メニューリストで登録する必要あり)。
  • 上記6 カウンターオフセット用ファイル同梱(mogura_countup.php カウントアップ・ダウン共に可)。
  • 上記7 スキン3種(mogura_blue mogura_brown mogura_green)及び必要となるイメージファイル同梱、eng.php time.php は固定幅に合わせて調整済み。

クローラー追跡

実際に使ってみてクローラーのログ取得がうまくいってないことが分かりました。baidu 等は取得されているのですが、肝心の Google や Yahoo が取得されていません。ネット上でも同様の報告がありました。ただこれを読んでもすぐ解決に結びつきそうにありません。とりあえず確認できたことは、

  • (データベースの)テーブル osaka_w3a の host 欄には、llf520003.crawl.yahoo.net とか crawl-66-249-70-49.googlebot.com とかが取り込まれた項目があり、クローラーの来歴はあるようにみえる。
  • しかしこれらの項目はテーブル osaka_ua には取り込まれていない。何かフィルターがかかっているように見える。
  • osaka_ua に取り込まれた項目は生ログに表示される。
  • osaka_ua に取り込まれており、os、os_v、brow の3欄に Crawler と表示されている項目が クローラー追跡で表示の対象になっている。baidu などはそうなっている。

ソースプログラムが理解できれば対処方法がわかるかもしれませんが、一寸手が出ません。ということで、この問題は当分棚上げ。気休めかもしれませんが、browser.php の Crawlerの表示設定で、$no_crawler = 0; だけはやっておきたいと思います。この設定は上記報告の中でアドバイスしている人がいます。ログの取得には関係なさそうにも思えるし、osaka_ua を作成する時のフィルタリングに関係あるようにもみえるし・・・・。しばらく様子をみることにしました。その間簡単なプログラムを組んで osaka_w3a の host 欄を時々検索することにします。2009.1.17 追記



コメント