ESC

awstats6.4にバージョンアップ+日本語化。

以前、日本語化について書いたのですが(2月4日 awstats日本語化参照。)、このdecode.plを使用するという方法だと、何かと不具合があったので、やはり根本的に日本語化するにはawstats.plに手を加えるのが一番かと思います。
基本的な設定については参照過去ログの3番目、6番目あたりを参考にしてください。


Jcode.pmを使用するので、インストールされていない場合は用意します。

  • CPANからのインストールは参照過去ログの6番目を。
  • CPANでインストールできない場合はソースからインストールできるので、参照過去ログの5番目を。
  • Jcode.pmがあるかどうかわからない場合は参照過去ログの7番目を参照して検索してみてください。


【参照過去ログ】

  1. 2月3日 awstats日本語化。
  2. 2月3日 awstats、バージョン6.3へアップデート。
  3. 1月24日 ログ解析ソフト“awstats 6.0日本語版”設置。
  4. 10月15日 解決・ログ解析ソフト“awstats 6.0日本語版”設置。
  5. 10月23日 PerlModuleをソースからインストールする。
  6. 10月14日 ログ解析ソフト“awstats 6.0日本語版”設置。
  7. 10月6日 サーバにPerlModuleがインストールされているか?


awstatsのサイトから最新バージョン(6.4)をダウンロードしてきます。
サーバへアップしたら解凍します。

shell > tar zxfv awstats-6.4.tgz


次にエディタで新しいawstats.plに手を加えます。
PerlModuleを呼び出しているところの一番下に

use Jcode;

を追記します。


それから、検索語をエンコードしているサブルーチンを編集します。
“DecodeEncodeString”というサブルーチンを探します。

1 |sub DecodeEncodedString {
2 |   my $stringtodecode=shift;
3 |   $stringtodecode =~ tr/\+/ /s;
4 |   $stringtodecode =~ s/%([A-F0-9][A-F0-9])/pack("C", hex($1))/ieg;
5 |   return $stringtodecode;
6 |}

サブルーチンの中の4行目の下に以下の行を追記します。

+ Jcode::convert(\$stringtodecode, "utf8");


これで、OKです。
一応、スクリプトのチェックをしましょう。

shell > perl -cw awstats.pl

“syntax OK”と言われたら、新しいawstats.plを既存のawstats.plのディレクトリへコピーします。

shell > cp awstats-6.4/wwwroot/cgi-bin/awstats.pl /awstatsを格納してあるディレクトリまでのフルパス/

コピーする前に、念のため、前のバージョンをバックアップしておいた方がいいでしょう。
コピーしたら、ブラウザへアクセスしてみて、確認してみます。
あたしの場合はこれで問題なく表示されていました。


これで、decode.pl等を使用せず、日本語化ができることになります。
今後またバージョンアップしても、awstats.plに同じように手を加えればいいので、問題ないですね。
cronのタスクも軽減されたし、良かった良かった。