Matomo المعروف سابقًا باسم Piwik هو تطبيق مجاني ومفتوح المصدر (open-source) لتحليلات الويب.
يساعدك على تتبع الزوار عبر الإنترنت على موقع الويب الخاص بك.
إنه بديل لبرنامج Google Analytics الذي يمنحك تحكمًا كاملاً في تحليلات وبيانات موقع الويب الخاص بك دون استخدام حلول الجهات الخارجية.
إنه مصمم للشركات الصغيرة والمتوسطة الحجم التي يمكن استخدامها لتتبع مؤشرات الأداء الرئيسية مثل الزيارات والتنزيلات ومعدلات تحويل الأهداف والكلمات الرئيسية وغيرها الكثير.
سنشرح هنا تثبيت برنامج Matomo لتحليلات الويب على Ubuntu 20.04 باستخدام Nginx و Let's Encrypt SSL.
المتطلبات الأساسية
خادم يعمل بنظام التشغيل Ubuntu 20.04.
اسم مجال (domain name) صالح يشير إلى عنوان IP الخاص بالخادم.
إعداد كلمة مرور الـ root للخادم.
قم بتحديث حزم النظام بأحدث إصدار.
يمكنك تحديثها عن طريق تشغيل الأمر التالي:
apt-get update -y
قم بتثبيت التبعيات الأخرى المطلوبة عن طريق تشغيل الأمر التالي:
apt-get install curl wget vim git unzip socat gnupg2 -y
تثبيت خادم LEMP
يعمل Matomo على خادم ويب مكتوب بلغة PHP ويستخدم MySQL لقاعدة البيانات.
لذلك يجب تثبيت LEMP stack في الخادم الخاص بك.
يمكنك تثبيته بالأمر التالي:
apt-get install nginx mariadb-server php7.4 php7.4-cli php7.4-fpm php7.4-common php7.4-curl php7.4-gd php7.4-xml php7.4-mbstring php7.4-mysql -y
إنشاء Matomo Database
يتطلب Matomo قاعدة بيانات لتخزين بيانات التحليلات.
لذلك سوف تحتاج إلى إنشاء قاعدة بيانات ومستخدم لـ Matomo.
قم بتسجيل الدخول إلى MariaDB باستخدام الأمر التالي:
mysql
بعد تسجيل الدخول قم بإنشاء قاعدة بيانات ومستخدم لـ Matomo بالأمر التالي:
MariaDB [(none)]> CREATE DATABASE matomodb;
MariaDB [(none)]> GRANT ALL ON matomodb.* TO 'matomo' IDENTIFIED BY 'password';
امسح الصلاحيات واخرج من MariaDB باستخدام الأمر التالي:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
تحميل Matomo
قم بتنزيل أحدث إصدار من Matomo إلى مجلد الـ root الخاص بـ Nginx من موقعه الرسمي باستخدام الأمر التالي:
cd /var/www/html/
wget https://builds.matomo.org/matomo.zip
قم بفك ضغط الملف الذي تم تنزيله باستخدام الأمر التالي:
unzip matomo.zip
قم بتغيير ملكية matomo إلى www-data:
chown -R www-data:www-data /var/www/html/matomo
إعدادات Nginx لـ Matomo
ستحتاج إلى إنشاء ملف إعدادات Nginx virtual host جديد لـ Matomo.
nano /etc/nginx/sites-available/matomo.conf
أضف السطور التالية:
server {
listen 80;
server_name matomo.linuxbuz.com;
root /var/www/html/matomo/;
index index.php;
location ~ ^/(index|matomo|piwik|js/index).php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location = /plugins/HeatmapSessionRecording/configs.php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~* ^.+\.php$ {
deny all;
return 403;
}
location / {
try_files $uri $uri/ =404;
}
location ~ /(config|tmp|core|lang) {
deny all;
return 403;
}
location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ {
allow all;
}
location ~ /(libs|vendor|plugins|misc/user) {
deny all;
return 403;
}
}
احفظ وأغلق الملف.
ثم قم بتنشيط الـ virtual host بالأمر التالي:
ln -s /etc/nginx/sites-available/matomo.conf /etc/nginx/sites-enabled/
تحقق من حالة Nginx بحثًا عن أي خطأ في الإعدادات باستخدام الأمر التالي:
nginx -t
يجب أن ترى النتيجة التالي:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
أعد تشغيل خدمة Nginx لتطبيق التغييرات:
systemctl restart nginx
تأمين Matomo مع Let's Encrypt SSL
قم بتثبيت Certbot Let's Encrypt client في الخادم الخاص بك باستخدام الأمر التالي:
apt-get install python3-certbot-nginx -y
قم بتأمين موقع الويب الخاص بك باستخدام Let's Encrypt SSL عن طريق تشغيل الأمر التالي:
certbot --nginx -d matomo.linuxbuz.com
سيُطلب منك تقديم عنوان بريد إلكتروني صالح وقبول مدة الخدمة:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): hitjethva@gmail.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for matomo.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/matomo.conf
اختر ما إذا كنت تريد إعادة توجيه حركة مرور HTTP إلى HTTPS كما هو موضح أدناه:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
اكتب 2 واضغط على Enter لإنهاء التثبيت.
يجب أن ترى الناتج التالي:
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/matomo.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://matomo.linuxbuz.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=matomo.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/matomo.linuxbuz.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/matomo.linuxbuz.com/privkey.pem
Your cert will expire on 2020-10-30. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
- We were unable to subscribe you the EFF mailing list because your
e-mail address appears to be invalid. You can try again later by
visiting https://act.eff.org.
Now, your Matomo website is secured with Let's Encrypt SSL.
الآن ، تم تأمين موقع Matomo الخاص بك باستخدام Let's Encrypt SSL.
الوصول إلى Matomo Analytics
افتح متصفح الويب الخاص بك واكتب عنوان URL https://matomo.linuxbuz.com
ستتم إعادة توجيهك إلى شاشة الترحيب في Matomo:
انقر NEXT.
يجب أن تشاهد شاشة فحص المتطلبات المسبقة لـ Matomo:
انقر فوق NEXT.
يجب أن تشاهد شاشة إعدادات قاعدة بيانات matomo:
قدم تفاصيل قاعدة البيانات الخاصة بك وانقر على NEXT.
يجب أن ترى الشاشة التالية:
انقر فوقNEXT.
يجب أن تشاهد شاشة إعداد المستخدم المسؤول:
أدخل اسم مستخدم المسؤول (admin) وكلمة المرور والبريد الإلكتروني.
انقر على NEXT.
يجب أن تشاهد شاشة إعداد موقع الويب:
قدم تفاصيل موقع الويب الخاص بك وانقر على زر NEXT.
يجب أن ترى الشاشة التالية:
انقر NEXT.
بمجرد اكتمال التثبيت ، سترى الشاشة التالية:
ستتم إعادة توجيهك إلى شاشة تسجيل الدخول إلى Matomo:
أدخل اسم المستخدم وكلمة المرور للمسؤول (admin) وانقر على زر تسجيل الدخول .
يجب أن تشاهد لوحة Matomo dashboard في الشاشة التالية: