زیرساخت ابری هایو
[dark-light-mode-switch]

آموزش نصب اسکریپ آنالیز وبسایت Matomo در اوبنتو 20.04

فهرست مطالب

Matomo یک برنامه تجزیه و تحلیل وب رایگان و منبع باز است که به زبان PHP نوشته شده است.

در این آموزش شما Matomo و یک پایگاه داده MariaDB را با استفاده از Docker Compose نصب می‌کنید، سپس Nginx را نصب می‌کنید تا به عنوان یک پروکسی معکوس برای برنامه Matomo عمل کند.

در نهایت، اتصالات HTTPS ایمن را با استفاده از Certbot برای دانلود و پیکربندی گواهی‌های SSL از Let’s Encrypt Certificate Authority فعال می‌کنید.

پیش نیازها

برای تکمیل این آموزش ابتدا به موارد زیر نیاز دارید:

در نهایت، برای فعال کردن SSL به یک نام دامنه نیاز دارید که به آدرس IP عمومی سرور شما اشاره داشته باشد.

برای مثال این باید چیزی شبیه example.com یا matomo.example.com باشد.

اگر از هایو استفاده می کنید، لطفاً برای کسب اطلاعات در مورد ایجاد منابع دامنه در کنترل پنل ما ،به قسمت DNS پنل کاربری مراجعه کنید.

هنگامی که تمام پیش نیازها را برآورده کردید، به مرحله 1 بروید ، جایی که نرم افزار Matomo را دانلود و راه اندازی می کنیم.

مرحله 1 – اجرای Matomo و MariaDB با استفاده از Docker Compose

اولین قدم شما ایجاد پیکربندی Docker Compose است که کانتینرهایی را هم برای اسکریپت Matomo و هم برای پایگاه داده MariaDB راه اندازی می کند.

این آموزش پیکربندی شما را در دایرکتوری matomo در دایرکتوری اصلی سرور شما قرار می دهد.

همچنین می توانید انتخاب کنید که این اسکریپت دردایرکتوری opt/matomo/  یا هر دایرکتوری دیگری که مدنظر شماست کار کند.

ابتدا مطمئن شوید که در دایرکتوری اصلی سرور خود هستید:

cd ~

سپس یک دایرکتوری به نام matomo در آن ایجاد کنید و با دستور cd وارد آن شوید:

mkdir matomo
cd matomo

حالا یک فایل YAML خالی جدید به نام docker-compose.yml باز کنید :

nano docker-compose.yml

این فایل پیکربندی است که نرم افزار docker-compose هنگام بالا آوردن کانتینر شما می خواند. موارد زیر را در این فایل قرار دهید:

version: "3"

services:
       db:
            image: mariadb
             command: --max-allowed-packet=64MB
             restart: always
             environment:
                 - MARIADB_DATABASE=matomo
                 - MARIADB_USER
                 - MARIADB_PASSWORD
                 - MARIADB_ROOT_PASSWORD
              volumes:
                  - ./db:/var/lib/mysql

      app:
              image: matomo
              restart: always
              volumes:
                   - ./matomo:/var/www/html
              ports:
                      - 127.0.0.1:8080:80

این فایل دو سرویس را تعریف می کند ، یک سرویس db که کانتینر MariaDB است ویک سرویس app که نرم افزار Matomo را اجرا می کند.

هر دو سرویس همچنین به یک volumes اشاره می‌کنند که در آن برخی از داده‌ها را ذخیره می‌کنند، و سرویس app همچنین پورت 8080 را در (127.0.0.1) باز می‌کند که ما از طریق localhost به آن متصل می‌شویم .

فایل را ذخیره کنید و برای ادامه از ویرایشگر متن خود خارج شوید.

در ویرایشگر نانو، کلید های CTRL+O و سپس ENTER را برای ذخیره و سپس کلید های CTRL+X را برای خروج فشار دهید.

کانتینر MariaDB به تنظیماتی نیاز دارد تا از طریق متغیرهای محیطی به آن منتقل شود تا بتواند کار کند.

این فایل docker-compose.yml متغیرهای محیطی را لیست می‌کند، اما همه آنها دارای مقادیر مرتبط نیستند.

دلیلش این است که دور نگه داشتن رمزهای عبور از فایل docker-compose.yml خود تمرین خوبی است برای برقراری امنیت بیشتر درسرور، به خصوص اگر آن را به یک مخزن Git یا سیستم کنترل منبع دیگر متصل کنید.

در عوض، ما اطلاعات لازم را در یک فایل env. در همان دایرکتوری قرار می دهیم، که دستورات docker-compose به طور خودکار با راه اندازی کانتینرها آن ها را فراخوانی می کنند.

باز کردن یک فایل env. جدید با ویرایشگر nano:

شما باید یک نام کاربری و رمز عبور و همچنین یک رمز عبور قوی برای حساب کاربری روت MariaDB وارد کنید(توجه داشته باشید که حساب روت پایگاه داده با روت سرور تفاوت دارد):

MARIADB_USER=matomo
MARIADB_PASSWORD=a_strong_password_for_user
MARIADB_ROOT_PASSWORD=a_strong_password_for_root

یکی از راه های ایجاد رمز عبور قوی استفاده از دستور openssl است که در اکثر سیستم عامل ها موجود می باشد.

دستور زیر یک هش تصادفی 30 کاراکتری را چاپ می کند که می توانید از آن به عنوان رمز عبور استفاده کنید:

openssl rand 30 | base64 -w 0 ; echo

پس از تکمیل اطلاعات موجود در فایل env. خود، آن را ذخیره کرده و از ویرایشگر متن خود خارج شوید.

اکنون آماده هستید تا دو کانتینر را با docker-compose به هم متصل کنید:

sudo docker-compose up -d

فرمان up به شما می‌گوید که کانتینرها (و مقادیر و شبکه‌های) تعریف‌شده در فایل docker-compose.yml را اجرا کنید، و d- به آن می‌گوید که این کار را در پس‌زمینه انجام دهد (“daemonize“) تا امکان وارد کردن دستور در ترمینال شما را اشغال نکند.

docker-compose هنگامی که کانتینرها را اجرا می کند، خروجی مختصری را به شما نمایش می دهد:

Output
Creating matomo_db_1 ... done
Creating matomo_app_1 ... done

وقتی این کار تمام شد، اسکریپت Matomo باید در حال اجرا باشد.

با استفاده از دستور curl زیر می توانید تست کنید که آیا آن در حال اجراست یا خیر :

curl --head http://localhost:8080

با این کار فقط هدر های HTTP در پاسخ چاپ می شود:

Output HTTP/1.1 200 OK Date: Tue, 25 Jan 2022 19:56:16 GMT Server: Apache/2.4.51 (Debian) X-Powered-By: PHP/8.0.14 X-Matomo-Request-Id: 1e953 Cache-Control: no-store, must-revalidate Referrer-Policy: same-origin Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' 'unsafe-eval' data:; Set-Cookie: MATOMO_SESSID=dde7d477b0822e166ed90448964ec1e7; path=/; HttpOnly; SameSite=Lax Content-Type: text/html; charset=utf-8

برگرداندن پاسخ 200 به این معنی است که سرور Matomo فعال و در حال اجرا است، اما فقط در لوکال هاست ( localhost) دسترس است.

سپس Nginx را برای پراکسی کردن ترافیک عمومی به کانتینر Matomo تنظیم می کنیم.

مرحله 2 – نصب و پیکربندی Nginx

قرار دادن یک وب سرور مانند Nginx در کنار سرور Matomo می‌تواند عملکرد آن را با بارگذاری کش، فشرده‌سازی و سرویس فایل های استاتیک را بهبود بخشد.

ما قصد داریم Nginx را نصب کنیم و آن را پیکربندی کنیم تا به عنوان یک پراکسی بین درخواست های کاربران و Matomo کار کند.

استفاده از Nginx اضافه کردن گواهینامه‌های Let’s Encrypt SSL را نیز در مرحله بعد آسان‌تر می‌کند.

ابتدا لیست پکیج خود را بازخوانی کنید، سپس Nginx را با استفاده از دستور apt نصب کنید:

sudo apt update
sudo apt install nginx

باستفاده از نمایه Nginx Full در فایروال UFW پورت های 80 و 443 که مربوط به پورت ها http و https می شوند را بازکنید:

sudo ufw allow "Nginx Full"
Output
Rule added
Rule added (v6)

سپس، یک فایل پیکربندی Nginx جدید را در دایرکتوری etc/nginx/sites-available/ ایجاد کنید.

ما در اینجا برای این فایل پیکربندی نام matomo.conf قرار داده ایم؛ اما شما می توانید از هر نام دیگری هم استفاده کنید:

sudo nano /etc/nginx/sites-available/matomo.conf

موارد زیر را در فایل پیکربندی جدید جای‌گذاری کنید و مطمئن شوید به جای your_domain_here نام دامنه‌ای را که پیکربندی کرده‌اید تا به سرور Matomo خود متصل شود را جایگزین کنید.

این باید چیزی شبیه matomo.example.com باشد:

server {
listen          80;
listen          [::]:80;
server_name          your_domain_here;

         access_log             /var/log/nginx/matomo.access.log;
error_log                /var/log/nginx/matomo.error.log;

         location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://localhost:8080;
}
}

این پیکربندی فعلاً فقط برای پروتکل HTTP است،درمحله بعدی با استفاده از certbot رمزگذاری ssl را پیکربندی می کنیم.

این پیکربندی تمام ترافیک و همچنین برخی از هدرهای مهم پراکسی را به کانتینر matomo در آدرس http://localhost:8080 منتقل می کند.

فایل را ذخیره کرده و ببندید، سپس پیکربندی را با پیوند دادن آن به دایرکتوری /etc/nginx/sites-enabled کامل می کنیم:

sudo ln -s /etc/nginx/sites-available/matomo.conf /etc/nginx/sites-enabled/

برای بررسی صحیح بودن فایل پیکربندی از این دستور استفاده کنید:

sudo nginx -t

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

و در نهایت، سرویس nginx را دوباره بارگیری کنید تا پیکربندی جدید را اعمال کند:

sudo systemctl reload nginx

سایت Matomo شما اکنون باید در پروتکل HTTP در دسترس باشد.

برای بررسی آن آدرس دامنه ای را که در فایل پیکربندی وارد کرده بودید را مانند http://your_domain_here در یک مرورگر وارد کنید.

باید با صفحه خوش آمد Matomo روبرو شوید همانند شکل زیر:

نصب اسکریپت آنالیز وبسایتMatomo

 

اکنون که سایت خود را از طریق HTTP راه‌اندازی کرده‌اید، وقت آن است که اتصال را با Certbot و گواهی‌های Let’s Encrypt ایمن کنید.

شما باید این کار را قبل از انجام مراحل راه اندازی مبتنی بر وب Matomo انجام دهید.

مرحله 3 – نصب Certbot و راه اندازی گواهینامه های SSL

به لطف ابزار Certbot و مجوز رایگان Let’s Encrypt، افزودن رمزگذاری SSL به برنامه Matomo ما تنها در دو دستور انجام می شود.

ابتدا Certbot و افزونه Nginx آن را نصب کنید:

sudo apt install certbot python3-certbot-nginx

در مرحله بعد، دامنه ای را که به جای your_domain_here وارد کردید را باید به certbot  معرفی کنید:

sudo certbot --nginx -d your_domain_here

از شما خواسته می شود که با شرایط سرویس Let’s Encrypt موافقت کنید و یک آدرس ایمیل وارد کنید.

پس از آن، از شما پرسیده می شود که آیا می خواهید تمام ترافیک HTTP را به HTTPS هدایت کنید.

این به شما بستگی دارد، اما به طور کلی این کار توصیه می شود و انجام آن بی خطر است.

پس از آن، Let’s Encrypt درخواست شما را تایید می کند و Certbot گواهی شما را دانلود می کند:

Output
Congratulations! You have successfully enabled https://matomo.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=matomo.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/matomo.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/matomo.example.com/privkey.pem
Your cert will expire on 2021-12-06. 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

Certbot به طور خودکار Nginx را بارگیری مجدد می کند تا پیکربندی و گواهی های جدید را دریافت کند.

سایت خود را مجدداً بارگیری کنید، اگر گزینه تغییر مسیر را انتخاب کرده باشید، باید به طور خودکار شما را به پروتکل HTTPS متصل کند.

مرحله 4 – راه اندازی Matomo

اکنون وقت پیکربندی خود Matomo فرا رسیده است، آدرس دامنه خود را در یک مرورگر وارد کنید.

شما اکنون به صفحه خوش آمدگویی Matomo وارد شده اید؛ روی دکمه Next کلیک کنید.

شما به مرحله بررسی سیستم هدایت می شوید :

ابزار مشابه گوگل آنالیتیکس

این خلاصه‌ای از اطلاعات سیستمی است که Matomo روی آن اجرا می‌شود، و همه ی گزینه ها باید تیک های سبز رنگ داشته باشند که نشان می‌دهد مشکلی وجود ندارد.

تا انتها به پایین بروید و روی دکمه Next کلیک کنید.

اکنون به صفحه تنظیم پایگاه داده منتقل خواهید شد:

نصب اسکریپت matomo

اطلاعاتی که در این صفحه وارد می کنید به اسکریپت Matomo نحوه اتصال به پایگاه داده MariaDB را می گوید.

شما به MARIADB_USER و MARIADB_PASSWORD آنچه در مرحله 1 انتخاب کرده اید نیاز دارید.

در صورت نیاز می توانید آنها را از فایل env. خود کپی کنید.

چهار فیلد اول را باید وارد کنید:

  • سرور پایگاه داده: db
  • Login: نام کاربری که درمتغیر  MARIADB_USER  تنظیم کرده اید
  • Password: رمز عبوری که در متغیر MARIADB_PASSWORD تنظیم کرده اید
  • نام پایگاه داده: Matomo

پیش فرض ها برای دو فیلد باقی مانده خوب هستند.

یک بار دیگر روی Next کلیک کنید .

تأییدی دریافت خواهید کرد که پایگاه داده به درستی تنظیم شده است.

دوباره روی Next کلیک کنید. سپس باید یک کاربر ادمین راه اندازی کنید و در نهایت اطلاعاتی را در مورد اولین وب سایتی که می خواهید برای آن تجزیه و تحلیل جمع آوری کنید  را تنظیم کنید.

پس از همه اینها، باید در مرحله 8، یک صفحه تبریک مشاهده کنید.

شما تقریباً تمام موارد مورد نیاز را طی کرده اید.

به پایین بروید و روی دکمه Continue to Matomo کلیک کنید و تا به صفحه اصلی هدایت شوید:

ابزار مشابه گوگل انالیتیکس

یک هشدار بزرگ در بالای صفحه وجود خواهد داشت.

برای رفع آن یک به‌روزرسانی کوچک وجود دارد که باید در فایل پیکربندی Matomo انجام دهید تا این فرآیند به پایان برسد.

به خط فرمان برگردید، فایل پیکربندی را با یک ویرایشگر متن باز کنید:

sudo nano matomo/config/config.ini.php

در خطوط بالایی باید یک بخش [General] داشته باشید. سه خط آخر را که در زیر مشخص شده اند به انتهای آن بخش اضافه کنید:

[General]
proxy_client_headers[] = "HTTP_X_FORWARDED_FOR"
proxy_host_headers[] = "HTTP_X_FORWARDED_HOST"
salt = "e0a81d6e54d6d2200efd0f0ef6ef8563"
trusted_hosts[] = "localhost"
trusted_hosts[] = "example.com"
trusted_hosts[] = "localhost:8080"
assume_secure_protocol = 1
force_ssl = 1

این گزینه‌ها به Matomo می گوید که استفاده از پورت 8080 بی‌خطر است، و باید فرض کند که همیشه از طریق یک اتصال امن به آن دسترسی پیدا می‌کنید.

فایل پیکربندی را ذخیره کرده و ببندید، سپس به مرورگر خود برگردید و صفحه را دوباره بارگیری کنید.

همانطور که می بینید خطا برطرف شده است و یک اعلان ورود به سیستم نمایش داده می شود.

ماموتو

با اکانت مدیریتی که در حین راه اندازی ایجاد کردید وارد شوید، باید به داشبورد هدایت شوید:

انالیز وبسایت

از آنجایی که احتمالاً هنوز کد رهگیری خود را تنظیم نکرده اید، داشبورد نشان می دهد که هیچ داده ای ثبت نشده است.

دستورالعمل ها را دنبال کنید تا مراحل راه اندازی را، با قرار دادن کد جاوا اسکریپت در وب سایت خود برای شروع دریافت داده های تجزیه و تحلیل به پایان برسانید.

نتیجه

در این آموزش، اسکریپت آنالیز وبسایت Matomo و یک پایگاه داده MariaDB را با استفاده از Docker Compose راه اندازی کردید، سپس یک پراکسی معکوس Nginx راه اندازی کردید و آن را با استفاده از گواهینامه های Let’s Encrypt SSL ایمن کردید.

اکنون آماده راه اندازی وب سایت خود و اضافه کردن اسکریپت ردیابی تجزیه و تحلیل Matomo هستید.

برای اطلاعات بیشتر در مورد عملکرد نرم افزار Matomo، لطفاً به مستندات رسمی Matomo مراجعه کنید.

رایگان آموزش ببین - آموزش کار با سرویس های هایو

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *