公開日 2025-12-3 更新日 2025-12-5
trixieをインストールして使いながら、前に使っていたbullseye上の作業ができるように仕上げていく過程でトラブルが発生。Linuxのインストールと基本設定は「Linux生活」、それ以降のソフトウェアの話は「役に立たないお話」と分類していたが、今回はちょっと迷った。まあ、どちらでもいいのだが、今回はこちらで。
今のところ、3つのトラブルがある。(1)awfullが閲覧ページ数と訪問者数の計数をしない。ヒット数、ファイル数、サイト数、Volume数は計算します。(2)プリンタの用紙選択で用紙名が文字化けするものあり。(3)fonts-yozvox-yozfontというフォントをいれると、フォント名が文字化けする。
ここでは簡単に(1)だけ書いておきます。
次の図は2018年6月からのdebian.comのアクセス統計です。水色がページ数の月ごとグラフですが、右端の10月と11月のふた月が欠けています。訪問者も同様です。サイトだけになっているのがわかります。(クリックすると拡大します)
今回のインストールでは、起動時に元のDebian11(bullseye)が選択できますので、こちらでやってみると、正常なものが得られます。
レンタルサーバーが提供している毎日のアクセスログを1,2週に一度ダウンロードして、ローカルなPCのawffullで月ごとの記録を取ろうといういうものです。当サイトの「役に立たないお話」でも3つの記事で紹介しています。アクセス解析(awffull)の導入、awffullの調整、awffullのDebian11機への移設 です。トラブルがなければ、今回のこのページは「Debian13機への移設」になるはずでした。
awffullはウェブサーバーのアクセスログを読んで統計をとります。webalizerの後継のような位置づけです。Incrementalをyesに設定しておくと、最後の日時を覚えておき、それ以前のデータは無視し、以降のデータのみを積み上げて処理していきます。サーバーのログはある程度貯まるとローテートされますが、古いデータが重複してもよいので、頻度を調整すれば取りこぼしなく集計することができます。この仕組みで稼働中のウェブサーバーの元で少々遅れてもリアルタイムでいつ見ても自動で集計結果がみられるという状態を作ります。
私の借りているレンタルサーバーでは、awffullを自分で仕込むようなところまではできないのですが、日毎にまとめられた生のlogをダウンロードできるようになっています。
これを使って次のような手順で処理しています。
ローカルのウェブサーバーの利用統計は不要なので、cronで定時にawffullを走らせるのは止めておきます。
入力になる dabiyone.com.log の位置と、出力になるレポートの位置は awffull.conf の中に書いてあります。
awffullコマンドの引数は -v が Level of verbosity つまり、作業状況の報告の詳細度で -vv -vvv と数を増やすことでより詳細になります。-c はconfigファイルを指定するものです。
-vのレベルを上げても問題がありそうな様子は見つけられませんでした。
Debian11のもDebian13のもawffullのバージョンは同じです。実行ファイルのサイズは多少違いがありますが、どちらもコンパイルされた実行ファイルで、faileコマンドの出力は実質同じです。
Debian13では、awffull (3.10.2-10)。Debian11では、awffull (3.10.2-4+deb9u1)。
awffullの設定ファイルは割と短いので、見れば何をしているかがわかります。設定ファイルに変更を加えたところに 署名しています。grepで変更したところがわかりやすくて便利です。
Debian13では以下のようです。Debian11のものも同じです。(diffを使って違いを見ると私の入れた日時だけが異なるので、変更した所以外も一致していることがわかります)
adachi の後ろの説明は、ここで追加したもの。最後の2項目は1行以上追加しているので、コマンド出力に後から補っています。
adachi@banach:/etc/awffull$ grep adachi -B1 -A1 awffull.conf #LogFile /var/log/apache2/access.log.1 #2025-11-11 adachi logファイルの指定。 LogFile /media/adachi/S1T/dablog/dabiyone.com.log -- #Incremental no #2025-11-11 adachi 最後の日時を覚えておき、それより前を無視することで重複なく集計する。 Incremental yes -- #HostName banach #2025-11-11 adachi 結果報告のタイトルに使うだけ HostName dabiyone.com -- #UseHTTPS no #2025-11-11 adachi 後で説明します UseHTTPS yes -- #GeoIP no #2025-11-11 adachi どの国からのアクセスかの集計に使う方式をGeoIPにする GeoIP yes -- #GeoIPDatabase /usr/local/share/GeoIP/GeoIP.dat #2025-11-11 adachi GeoIPDatabase /usr/share/GeoIP/GeoIP.dat -- #Top404Errors 0 #2025-11-11 adachi どのファイルが file not found になったかの集計。リンクの間違いを知ろうとした Top404Errors 10 -- #HideSite localhost #2025-11-11 adachi "Your own site should be hidden"と書いてあったので。 HideSite dabiyone.com -- #HideReferrer mrunix.net/ #2025-11-11 adachi "Your own site gives most referrals"と書いてあったので HideReferrer dabiyone.com -- HideURL *.ra #2025-11-11 adachi 同じcss,jsファイルをたくさんのページで使っていたのでこれが上位に出てしまう HideURL *.css HideURL *.js -- #GraphIndexX 512 #GraphIndexY 256 #2025-11-11 adachi 1年以上グラフを集計すると狭くなって棒グラフの幅が細くなるので拡大。 GraphIndexX 768 GraphIndexY 384
UseHTTPS についての説明
UseHTTPS should be used if the analysis is being run on a secure server, and links to urls should use ‘https://’ instead of the default ‘http://’. If you need this, set it to ‘yes’. Default is ‘no’. This only changes the behaviour of the ‘Top URLs’ table.
統計の中に次のような さまざまなランキングで上位ページへのリンクが出るのですが、このリンクをhttps://で始めるかhttp://で始めるかの違いです。統計の対象であるサイト(ここではdabiyone.com)がhttps://でアクセスするようになっているなら"UseHTTPS yes"とするということだけです。統計そのものには影響しませんし、Referrerについてはそれぞれのサイトが申告するものがそのまま記録されるので影響はありません。
| # | ヒット | Volume | URL | ||
|---|---|---|---|---|---|
| 1 | 1032 | 2.22% | 5.68 MB | 0.40% | / |
| 2 | 925 | 1.99% | 3.17 MB | 0.22% | /favicon.ico |
| 3 | 247 | 0.53% | 2.46 MB | 0.17% | /misc/ |
| 4 | 203 | 0.44% | 1.81 MB | 0.13% | /misc/mia017.html |
| 5 | 183 | 0.39% | 3.51 MB | 0.25% | /system/a12toninst02.html |
| 6 | 132 | 0.28% | 1.14 MB | 0.08% | /misc/mia001.html |
ここのURLのリンクをhttps://で書くかどうかという設定
最初にあげたグラフの2025年7月以降の数値です。Debian13とDebian11で比較しています。pagesと訪問者以外は同一であることがわかります。
Debian13の10月の「月の合計」にある17,29は、まだDebian11で処理していた時の、9月30日に含まれる10月のデータが引き継がれたものです。
| 月 | 一日あたりの平均 | 月の合計 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ヒット | ファイル | ページ | 訪問者 | サイト | Volume | 訪問者 | ページ | ファイル | ヒット | |
| 11月 2025 | 1647 | 895 | 0 | 0 | 3472 | 1.05 GB | 0 | 0 | 17912 | 32951 |
| 10月 2025 | 1500 | 892 | 0 | 0 | 5268 | 1.43 GB | 17 | 29 | 27674 | 46505 |
| 9月 2025 | 1757 | 1227 | 1084 | 160 | 4094 | 1.84 GB | 4829 | 32520 | 36836 | 52739 |
| 8月 2025 | 1528 | 563 | 1088 | 156 | 3454 | 921.06 MB | 4838 | 33755 | 17470 | 47394 |
| 7月 2025 | 1832 | 565 | 1345 | 179 | 4314 | 891.80 MB | 5549 | 41696 | 17529 | 56818 |
Debian13のawffullの出力
Debian11による集計です。pagesと訪問者も集計されています。
| 月 | 一日あたりの平均 | 月の合計 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ヒット | ファイル | ページ | 訪問者 | サイト | Volume | 訪問者 | ページ | ファイル | ヒット | |
| 11月 2025 | 1647 | 895 | 904 | 176 | 3472 | 1.05 GB | 3532 | 18089 | 17912 | 32951 |
| 10月 2025 | 1500 | 892 | 788 | 198 | 5268 | 1.43 GB | 6142 | 24439 | 27674 | 46505 |
| 9月 2025 | 1757 | 1227 | 1084 | 160 | 4094 | 1.84 GB | 4829 | 32520 | 36836 | 52739 |
| 8月 2025 | 1528 | 563 | 1088 | 156 | 3454 | 921.06 MB | 4838 | 33755 | 17470 | 47394 |
| 7月 2025 | 1832 | 565 | 1345 | 179 | 4314 | 891.80 MB | 5549 | 41696 | 17529 | 56818 |
Debian11のawffullの出力
awffullが変更を加えられていない様子なので、使っているライブラリが変更されている可能性があります。
synapticでわかる依存情報です。
devconf(>=0.5)|debconf-2.0 libc6(>=2.34) libgd3(>=2.1.0~alpha~) libpcre2-8-0(>=10.22) zlib1g(>=1:1.2.3.3)
諦めて、この報告を書いていたのですが、confのPageTypeの設定を再び目にして、何がページとして計数されるべきかという判断が違っているためにページが計数されないのではないかと考えました。
PageTypeとNotPageTypeの2つの指定方法があって、既定値は次のようになっています。
PageType htm PageType html PageType php #PageType pl #PageType cfm #PageType pdf #PageType txt #PageType cgi #NotPageType gif #NotPageType css #NotPageType js #NotPageType jpg #NotPageType ico #NotPageType png
どちらか一方を使えとかの説明がコメントとして書いてありますが、省きます。
htm, html, php のタイプがページであるといういう設定です。
これを次のようにすれば、不正確かもしれないけれど、少なくとも 0 にはならないだろうと考えたのです。
#PageType htm #PageType html #PageType php #PageType pl #PageType cfm #PageType pdf #PageType txt #PageType cgi NotPageType gif NotPageType css NotPageType js NotPageType jpg NotPageType ico NotPageType png
すると大きな変化があったのですが、その過程で confファイルの扱いに不手際でごたごたしました。結論を急ぐ方はこの項を飛ばして次に行ってください。
まず、PageTypeとNotPageTypeの両方を指定しているのは受け付けられないと、はねられます。
adachi@banach:/media/adachi/S1T/dablog2$ ./fromdablog1 Using config file: /etc/awffull/awffull2.conf FATAL! You may not specify both PageType and NotPageType in the config file.%s
いやいや、awffull2.confには、PageTypeの指定はありません。
fromdablog1はbashのスクリプトで、内容は次のようなものです。awffull2.confファイルを指定しています。
zcat ../dablog/dabiyone.com_202511??.log.gz >dabiyone.com.log awffull -v -c /etc/awffull/awffull2.conf
脇道にそれますが、以前から気になっていたことがあります。awffull2.confを指定しているのに、Initially processed ... と言って、awffull.conf を読んだようなことを言っています。
adachi@banach:/media/adachi/S1T/dablog2$ ./fromdablog1 Using config file: /etc/awffull/awffull2.conf Initially processed default config file: /etc/awffull/awffull.conf awffull 3.10.2 (Linux 6.12.57+deb13-amd64) 日本語 Using GeoIP for IP Address Lookups: /usr/share/GeoIP/GeoIP.dat 使用するログファイル = /media/adachi/S1T/dablog2/dabiyone.com.log 出力先 = /var/www/awffull2 レポートするホスト名 = 'dabiyone.com' Using CSS file: awffull.css ヒストリファイルが見つかりません... 前回実行時のデータが見つかりません... 現在の実行データを保存しています... [2025/11/20 03:26:31] レポートを生成しています - 11月 2025 概要レポートを生成しています Graph Done! ヒストリ情報を保存しています... 32911 レコード in 0.07 秒
awffull.confにはPageTypeを元にして、awffull2.confはNotPageTypeを元にして設定していますから、両方を読んでしかも # でコメントアウトしたものは無視するようにすると、両方を設定したことになりますね。
awffull.confを規定値として読んで、awffull2.confに書いたものだけ上書きするという設計はありそうですが、'PageType htm' と書いたものを、'#PageType htm' とは上書きできないと気づかなかったのでしょう。
awffull.confの名前を変えて存在しないように偽装して、awffull2.confだけをを使わせると、素直に従ってくれました。
[試行1203a] adachi@banach:/media/adachi/S1T/dablog2$ ./fromdablog1 Using config file: /etc/awffull/awffull2.conf awffull 3.10.2 (Linux 6.12.57+deb13-amd64) 日本語 Using GeoIP for IP Address Lookups: /usr/share/GeoIP/GeoIP.dat 使用するログファイル = /media/adachi/S1T/dablog2/dabiyone.com.log 出力先 = /var/www/awffull2 レポートするホスト名 = 'dabiyone.com' Using CSS file: awffull.css ヒストリファイルが見つかりません... 前回実行時のデータが見つかりません... 現在の実行データを保存しています... [2025/11/20 03:26:31] レポートを生成しています - 11月 2025 概要レポートを生成しています Graph Done! ヒストリ情報を保存しています... 32911 レコード in 0.09 秒
これがなんと、pagesと訪問者も計数されています。
いままで、awffullとawffull2の両方があったことが問題を起こす原因だったかもしれないということで、awffull2を名前を変えてawffullだけにしてみました。PageTypeは元に戻しました。fromdablog1中の指定もawffull.confを参照するように書き換えます。
するとawffullを2度読んでいます。
[試行1203b] adachi@banach:/media/adachi/S1T/dablog2$ vi ./fromdablog1 adachi@banach:/media/adachi/S1T/dablog2$ ./fromdablog1 Using config file: /etc/awffull/awffull.conf Initially processed default config file: /etc/awffull/awffull.conf awffull 3.10.2 (Linux 6.12.57+deb13-amd64) 日本語 Using GeoIP for IP Address Lookups: /usr/share/GeoIP/GeoIP.dat 使用するログファイル = /media/adachi/S1T/dablog2/dabiyone.com.log 出力先 = /var/www/awffull2 レポートするホスト名 = 'dabiyone.com' Using CSS file: awffull.css ヒストリファイルが見つかりません... 前回実行時のデータが見つかりません... 現在の実行データを保存しています... [2025/11/20 03:26:31] レポートを生成しています - 11月 2025 概要レポートを生成しています Graph Done! ヒストリ情報を保存しています... 32911 レコード in 0.07 秒
PageTypeを戻したので、これでは、pagesと訪問者は計数されません。
もう一度、awffull.confを直接変更して PageType をすべてコメントアウトし、NotPageType だけ有効にします。
[試行1203c] adachi@banach:/media/adachi/S1T/dablog2$ ./fromdablog11203c Using config file: /etc/awffull/awffull.conf Initially processed default config file: /etc/awffull/awffull.conf awffull 3.10.2 (Linux 6.12.57+deb13-amd64) 日本語 Using GeoIP for IP Address Lookups: /usr/share/GeoIP/GeoIP.dat 使用するログファイル = /media/adachi/S1T/dablog2/dabiyone.com.log 出力先 = /var/www/awffull2 レポートするホスト名 = 'dabiyone.com' Using CSS file: awffull.css ヒストリファイルが見つかりません... 前回実行時のデータが見つかりません... 現在の実行データを保存しています... [2025/11/20 03:26:31] レポートを生成しています - 11月 2025 概要レポートを生成しています Graph Done! ヒストリ情報を保存しています... 32911 レコード in 0.09 秒
やはり、pagesと訪問者も計数されています。
PageType を NotPageType でしたことでpagesばかりか、訪問者も計数されています。でも変です。

ヒットの高さとpagesの高さが常に同じなのです。
多分ですが、こんなことなのではないでしょうか。
PageType で指定 ⇨ ヒットとされたもののうち、PageType で指定されたもの(htm, html, php)を探すと 0 だったので pages = 0
NotPageType で指定 ⇨ ヒットとされたもののうち、NotPageType で指定されたもの(gif, css, js, jpgなど)を探すと 0 だったので pages = hits - 0
どちらにしても、PageType も NotPageType も探すのに失敗しているという推測ができます。
NotPageTypeの説明に
Those who understand pcre's would do well to examine the source # of parser.c if they wish to extract greater flexibility from the # below.
とありますので、依存関係にある libpcre2-8-0(>=10.22) あたりとの連携がとれないというところではないでしょうか。
2025年11月末の段階で、対処法がありません。
結局、あきらめて、別のツールである awstats に乗り換えました。awstats の設定はちょっと面倒で、サーバー上で動かすのではないやり方の使用例も少ないというのがネックでした。
この話は改めて書きます。