Matomo Analytics: جایگزینی عالی برای Google Analytics
- 1403/12/07
Matomo Analytics (که قبلاً به نام Piwik شناخته میشد) یک پلتفرم تحلیلی وب است که به کاربران این امکان را میدهد تا دادههای مربوط به ترافیک و رفتار کاربران روی وبسایتها و اپلیکیشنها را تجزیه و تحلیل کنند. این ابزار متنباز است و در مقایسه با Google Analytics، ویژگیهایی نظیر حفظ حریم خصوصی و کنترل کامل روی دادهها را به کاربران ارائه میدهد.
ویژگیهای اصلی Matomo عبارتند از:
برای نصب Matomo روی سرور با استفاده از Nginx، مراحل زیر را دنبال کنید:
برای نصب PHP و PHP-FPM (برای کار با Nginx) روی سرور، از دستورات زیر استفاده کنید:
sudo apt update
sudo apt install php-fpm php-mysql php-xml php-json php-curl php-mbstring php-zip php-gd
توجه: نسخه PHP باید حداقل 7.2 یا بالاتر باشد.
بعد از نصب PHP، برای اطمینان از نصب صحیح، دستور زیر را اجرا کنید:
php -v
برای نصب MySQL، از دستورات زیر استفاده کنید:
sudo apt update
sudo apt install mysql-server
بعد از نصب MySQL، آن را راهاندازی کنید:
sudo systemctl start mysql
و برای اطمینان از نصب صحیح، از دستور زیر استفاده کنید:
sudo systemctl status mysql
برای ایجاد پایگاه داده و کاربر در MySQL با استفاده از Webmin:
matomo_db
) را وارد کنید.matomo_user
) را با رمز عبور دلخواه ایجاد کنید.برای نصب Nginx روی سرور خود از دستور زیر استفاده کنید:
sudo apt update
sudo apt install nginx
پس از نصب Nginx، باید فایل تنظیمات آن را برای Matomo پیکربندی کنید. به مسیر /etc/nginx/sites-available/
بروید و فایل جدیدی به نام matomo.conf
بسازید:
server {
listen 80;
server_name example.com; # دامنه خود را وارد کنید
root /var/www/html/matomo;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # بررسی کنید که نسخه PHP شما با این تطابق داشته باشد
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
سپس، این فایل تنظیمات را به Nginx اضافه کنید:
sudo ln -s /etc/nginx/sites-available/matomo.conf /etc/nginx/sites-enabled/
برای اعمال تغییرات، Nginx را دوباره راهاندازی کنید:
sudo nginx -t
sudo systemctl reload nginx
برای اتصال دامنه خود به سرور (در این مثال دامنه example.com
)، ابتدا DNS دامنه خود را به آدرس IP سرور شما ارجاع دهید. سپس در فایل تنظیمات Nginx، نام دامنه را بهجای example.com
قرار دهید. اگر از Cloudflare استفاده میکنید، میتوانید تنظیمات DNS را در بخش DNS Settings پنل Cloudflare انجام دهید.
wget https://builds.matomo.org/matomo.zip
unzip matomo.zip
mv matomo /var/www/html/
http://example.com/matomo
) و دستورالعملها را دنبال کنید.در مرحله پایگاه داده، اطلاعاتی که قبلاً در Webmin ایجاد کردهاید (نام پایگاه داده، کاربر و رمز عبور) را وارد کنید.
بعد از اتمام نصب، Matomo کد JavaScript مخصوص به شما را برای ردیابی بازدیدکنندگان تولید میکند. این کد را در صفحات وبسایت خود قرار دهید.
تنظیم CRON برای پردازش خودکار دادهها در Matomo
Matomo بهصورت پیشفرض هر بار که یک کاربر وارد داشبورد میشود، دادههای جدید را پردازش میکند. اما این روش روی سرورهای پربازدید باعث کندی و افزایش بار سرور میشود. به همین دلیل بهتر است پردازش دادهها را بهصورت خودکار و زمانبندیشده با Cron Job انجام دهید.
✅ افزایش سرعت داشبورد: بدون نیاز به پردازش زنده در زمان بارگذاری داشبورد.
✅ کاهش فشار روی سرور: بهجای اینکه پردازشها هنگام ورود کاربران اجرا شوند، فقط در زمانهای مشخص اجرا میشوند.
✅ بهبود عملکرد گزارشها: گزارشهای روزانه، هفتگی و ماهانه سریعتر بهروزرسانی میشوند.
ابتدا باید پردازش زنده را در داشبورد Matomo غیرفعال کنیم تا بهجای آن، پردازشها توسط Cron Job اجرا شوند.
🔹 به مسیر Administration > General Settings بروید.
🔹 گزینه Archive reports when viewed from the browser را روی No تنظیم کنید.
🔹 تغییرات را ذخیره کنید.
🔹 نتیجه: از این به بعد، پردازش دادهها فقط از طریق Cron Job اجرا میشود.
۱. وارد سرور خود شوید.
۲. فایل کرونجاب را با دستور زیر باز کنید:
crontab -e
خط زیر را به انتهای فایل اضافه کنید:
5 * * * * www-data php /var/www/html/matomo/console core:archive --url=https://YourDomian.com > /dev/null 2>&1
🔹 توضیح:
5 * * * *
→ هر ساعت در دقیقه ۵ اجرا میشود. (میتوانید تغییر دهید، مثلاً هر ۶ ساعت اجرا شود.)www-data
→ کاربر وبسرور (در NGINX و Apache معمولاً www-data
است، اگر Matomo را با کاربر دیگری نصب کردهاید، آن را تغییر دهید)./var/www/html/matomo/console core:archive
→ این دستور پردازش دادهها را اجرا میکند.--url=https://analytics.example.com
→ آدرس Matomo شما.> /dev/null 2>&1
→ خروجی کرونجاب را در /dev/null
ذخیره میکند تا لاگهای اضافه تولید نشوند.✅ تست کنید که کرونجاب درست کار میکند:
دستور زیر را اجرا کنید:
php /var/www/html/matomo/console core:archive --url=https://YourDomian.com
اگر پردازش بدون خطا اجرا شد، کرونجاب نیز بهدرستی کار خواهد کرد.
بسته به میزان بازدید و ترافیک سایت، میتوانید فواصل اجرای کرون را تغییر دهید:
حجم بازدید سایت | تنظیم پیشنهادی Cron Job |
---|---|
کم (زیر ۱۰۰۰ بازدید روزانه) | هر ۶ ساعت 0 */6 * * * |
متوسط (بین ۱۰۰۰ تا ۱۰۰۰۰ بازدید روزانه) | هر ۲ ساعت 0 */2 * * * |
زیاد (بیش از ۱۰۰۰۰ بازدید روزانه) | هر ساعت 0 * * * * |
مثلاً اگر بخواهید هر ۶ ساعت اجرا شود:
0 */6 * * * www-data php /var/www/html/matomo/console core:archive --url=https://YourDomian.com
۴. بررسی اجرای صحیح کرونجاب
برای اطمینان از اجرای صحیح کرونجاب، میتوانید خروجی آن را در یک فایل ذخیره کنید:
bash
CopyEdit
5 * * * * www-data php /var/www/html/matomo/console core:archive --url=https://analytics.example.com >> /var/log/matomo-archive.log 2>&1
سپس با دستور زیر لاگها را مشاهده کنید:
bash
CopyEdit
tail -f /var/log/matomo-archive.log
اگر کرونجاب با موفقیت اجرا شود، باید پیامهایی مشابه زیر را ببینید:
sql
CopyEdit
INFO [2025-03-04 05:00:01] Archived website id = 1, period = day, 123 visits
INFO [2025-03-04 05:00:02] Archived website id = 1, period = week, 512 visits
INFO [2025-03-04 05:00:03] Done archiving!
مشکل: کرونجاب اجرا نمیشود
🔹 بررسی کنید که PHP CLI نصب شده باشد:
php -v
اگر اجرا نشد، مسیر PHP را مشخص کنید:
5 * * * * /usr/bin/php /var/www/html/matomo/console core:archive --url=https://analytics.example.com > /dev/null 2>&1
مشکل: کاربر سرور اشتباه است
🔹 در بعضی سرورها باید از root
یا apache
بهجای www-data
استفاده کنید:
5 * * * * root php /var/www/html/matomo/console core:archive --url=https://analytics.example.com > /dev/null 2>&1
مشکل: خطای permission denied
🔹 بررسی کنید که فایل console
قابل اجرا باشد:
chmod +x /var/www/html/matomo/console
مشکل: کرونجاب اجرا میشود ولی در داشبورد بهروزرسانی انجام نمیشود
🔹 بررسی کنید که گزینه "Archive reports when viewed from the browser" در تنظیمات غیرفعال شده باشد. > /dev/null 2>&1
برای امنیت سرور میتونید از UFW استفاده کنید
مقالات مرتبط:
آموزش ufw
آموزش امنیت سرور
پیشنهاد ما برای سرور مدیریت Matomo Analytics
رایگان ثبت نام کنید و اولین نفری باشید که از پست های جدید مطلع می شوید.