各ユーザー(例: 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のログ権限設定が必要です
***********************************************************************