~4 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴
1. فعالسازی AWStats در DirectAdmin
DirectAdmin بهصورت پیشفرض از Webalizer استفاده میکند، اما میتوان آن را به AWStats تغییر داد. این تغییر سراسری است و برای همه دامنهها اعمال میشود.
1.1 نصب و فعالسازی AWStats
da build set awstats yes
da build awstats
این دستورات موارد زیر را انجام میدهند:
- نصب AWStats
- افزودن
awstats=1به directadmin.conf - غیرفعال کردن Webalizer (قابل فعالسازی مجدد)
1.2 مسیر ذخیره آمار
- فایلهای HTML آمار:
/home/user/domains/domain.com/awstats - فایلهای داده:
/home/user/domains/domain.com/awstats/.data
مزیت: هنگام انتقال اکانت، آمار نیز منتقل میشود.
1.3 امنیت AWStats
برخلاف برخی پلاگینها که از chmod 777 استفاده میکنند، DirectAdmin فایلها را با مالکیت root و سطح دسترسی امن ایجاد میکند.
1.4 غیرفعالسازی AWStats برای یک کاربر
در فایل user.conf:
awstats=0
---
2. سفارشیسازی خروجی Webalizer
DirectAdmin بهصورت پیشفرض از تنظیمات داخلی Webalizer استفاده میکند. برای سفارشیسازی، باید فایل پیکربندی اختصاصی ایجاد کنید.
2.1 ایجاد فایل پیکربندی سفارشی
/usr/local/directadmin/data/templates/custom/webalizer.conf
مثال: فعالسازی Reverse DNS Lookup
DNSCache /var/lib/webalizer/|DOMAIN|.dns_cache.db
DNSChildren 10
2.2 تنظیم سطح دسترسی
chown root:root /var/lib/webalizer
chmod 1777 /var/lib/webalizer
2.3 اجرای دستی Webalizer
بدون فایل سفارشی:
webalizer -p -n [DOMAIN] -o /home/[USER]/domains/[DOMAIN]/stats \
/var/log/httpd/domains/[DOMAIN].log
با فایل سفارشی:
webalizer -c /usr/local/directadmin/data/templates/custom/webalizer.conf \
-p -n [DOMAIN] -o /home/[USER]/domains/[DOMAIN]/stats \
/var/log/httpd/domains/[DOMAIN].log
روش توصیهشده:
echo "action=tally&value=[USER]&type=user" >> /usr/local/directadmin/data/task.queue
---
3. فعالسازی آمار کشورها در AWStats
روش سریع (DNSLookup)
در فایل:
/home/username/domains/domain.com/awstats/.data/awstats.domain.com.conf
تنظیم کنید:
DNSLookup=1
نکته: این روش کند است و نیاز به PTR دارد.
روش حرفهای (GeoIP Plugin)
مراحل کلی:
- نصب GeoIP
- نصب Perl Module
- ویرایش فایل کانفیگ AWStats
نمونه تنظیم:
LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"
برای دامنههای جدید، فایل مدل:
/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf
---
4. بازسازی گزارشهای AWStats برای ماههای گذشته
اگر دادههای ماههای گذشته در مسیر .data موجود باشد، میتوانید HTMLهای قدیمی را بازسازی کنید.
4.1 ایجاد اسکریپت old_awstats.sh
#!/bin/sh
if [ "$#" -eq 0 ]; then
echo "Usage:";
echo " $0 ";
exit 1;
fi
month=$1
short_year=$2
full_year=20${short_year}
for u in `ls /usr/local/directadmin/data/users`; do
{
for d in `cat /usr/local/directadmin/data/users/$u/domains.list`; do
{
echo "";
echo "$u: $d: $month $full_year";
DATA=/home/$u/domains/$d/awstats/.data/awstats${month}${full_year}.${d}.txt
if [ ! -s $DATA ]; then
echo "Cannot find $DATA for $month $full_year. Skipping.";
continue;
fi
/usr/bin/perl /usr/local/awstats/tools/awstats_buildstaticpages.pl \
-config=$d -configdir=/home/$u/domains/$d/awstats/.data -update \
-diricons=icon -awstatsprog=/usr/local/awstats/cgi-bin/awstats.pl \
-dir=/home/$u/domains/$d/awstats -builddate=${short_year}${month} \
-year=$full_year -month=$month
echo "";
}
done;
}
done;
exit 0;
قابل اجرا:
chmod 755 old_awstats.sh
مثال اجرا:
./old_awstats.sh 04 20
---
5. رفع مشکل AWStats در CageFS (خطای Can't open perl script)
اگر AWStats در CageFS کار نمیکند، معمولاً فایلهای AWStats داخل skeleton کپی نشدهاند.
5.1 ویرایش فایل پیکربندی CageFS
فایل:
/etc/cagefs/conf.d/directadmin.cfg
افزودن مسیرها:
paths=/usr/local/awstats/, /usr/local/awstats-7.7/, /usr/local/awstats, /usr/local/php...
5.2 بروزرسانی CageFS
/usr/sbin/cagefsctl --force-update
بررسی:
ls -la /usr/share/cagefs-skeleton/usr/local
نوشته و پژوهش شده توسط دکتر شاهین صیامی