ユーザーディレクトリにawstats を設定.

各ユーザー(例: username)に対して、専用の設定ファイルを作成

# テンプレートをコピー (例: xxxxxx の場合)
sudo cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.xxxxxx.conf
kazuya@falcon21:~$ sudo cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.xxxxxxa.conf

———————


作成したファイル (/etc/awstats/awstats.user1.conf) を編集
kazuya@falcon21:~$ sudo vi /etc/awstats/awstats.xxxxxx.conf

# — /etc/awstats/awstats.user1.conf —
# 1. サイトのホスト名 (識別用)
SiteName=”user1.example.com”
158 SiteDomain=”xxxxxx.falcon21.space


# 2. ログファイルのパス (ユーザーディレクトリのアクセスログを指定)
LogFile=”/home/user1/logs/access_log” # ※各自の環境に合わせる
50 #LogFile=”/var/log/httpd/mylog.log”
51 LogFile=”/home/xxxxxx/logs/access_log”

# 3. ログの形式 (通常は1)
LogFormat=1

# 4. データベースの保存先 (各ユーザーが書き込める場所)
DirData=”/home/user1/awstats”
224 DirData=”/home/xxxxxx/awstats”

# 5. AWStatsのスクリプトがある場所 (ディストリビューション依存)
DirCgi=”/cgi-bin/”
DirIcons=”/awstats-icons”


———————

 重要: DirData で指定したディレクトリ (/home/user1/awstats) を作成し、Apacheの実行ユーザー(apache または www-data)が書き込めるようにする
mkdir /home/user1/awstats
chown apache:apache /home/user1/awstats # CentOSの場合
# chown www-data:www-data /home/user1/awstats # Ubuntuの場合

[root@falcon21 ~]# mkdir /home/kazuya/awstats
[root@falcon21 ~]# chown apache:apache /home/kazuya/awstats

———————-

3. アクセスログのパーミッション設定
   
一般ユーザーのログファイルは、通常 apache ユーザーが読み込めません
ログローテーション(logrotate)の設定で、読み取り権限が付与されるようにします。
/etc/logrotate.d/httpd (または apache2) を編集し、ユーザーのログに対する権限を追加します。


[root@falcon21 ~]# vi /etc/logrotate.d/httpd
#最後尾に追加
17 /home/kazuya/logs/access_log {
18 missingok
19 create 0644 xxxxxx apache
20 sharedscripts
21 postrotate
22   /sbin/service httpd reload > /dev/null 2>/dev/null || true
23 endscript
24 }
25

Apache の設定 (Web閲覧用)
ユーザーがブラウザから http://example.com/~user1/awstats/awstats.pl で確認できるように、Apache のエイリアス設定を行います。
/etc/httpd/conf.d/awstats.conf (Ubuntuは /etc/apache2/conf-enabled/awstats.conf) に以下を追記します。

almalix10 では、AWStats files have been installed in /usr/local/awstats


[root@falcon21 ~]# vi /etc/httpd/conf.d/awstats.conf
#最後尾に追加

# AWStatsのCGIスクリプトへのアクセス設定
ScriptAlias /awstats/ /usr/local/awstats/wwwroot/cgi-bin/
<Directory “/usr/local/awstats/wwwroot/cgi-bin/”>
Options None
AllowOverride None
Order allow,deny
Allow from all
# 必要に応じてBasic認証を入れる
AuthType Basic
# AuthName “Restricted”
# AuthUserFile /etc/awstats/.htpasswd
# Require valid-user
</Directory>

# アイコンへのエイリアス
Alias /awstats-icons/ /usr/local/awstats/wwwroot/icon/
<Directory “/usr/local/awstats/wwwroot/icon/”>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>


設定反映のため、Apacheを再起動
[root@falcon21 ~]# systemctl restart httpd


手動アップデートと動作確認
データを更新して表示を確認します。

データベースの更新
sudo /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=xxxxxx -update
ブラウザで以下にアクセスします。

[root@falcon21 ~]# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=xxxxxx-update
Create/Update database for config “/etc/awstats/awstats.xxxxxx.conf” by AWStats version 8.0 (build 20240604)
From data in log file “/home/xxxxxx/logs/access_log”…
Phase 1 : First bypass old records, searching new record…
Searching new records from beginning of log file…
Jumped lines in file: 0
Parsed lines in file: 1
Found 0 dropped records,
Found 1 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.


 http://falcon21.space/awstats/awstats.pl?config=xxxxxx へアクセス


クロンによる自動化
自動更新されるようにcronを設定します(/etc/cron.d/awstats に追記)。
又は、crontab -e
[root@falcon21 ~]# crontab -e
*/30 * * * * perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=xxxxxx -update > /dev/null
crontab: installing new crontab
Backup of root’s previous crontab saved to /root/.cache/crontab/crontab.bak

—————-

注意点
セキュリティ: ユーザーごとのアクセス解析画面には必ずBasic認証をかけてください。
ログファイル: /home/user1/logs/access_log が存在し、Apacheが書き込める設定になっているか確認してください。

多ユーザー: ユーザーが増えるたびに、手順2のコンフィグファイル作成と、手順3のログ権限設定が必要です


***********************************************************************