本教程將向您展示如何安裝 Matomo 網絡分析 Ubuntu 20.04(以前稱為 Piwik)上的 Apache 或 Nginx Web 服務器。 Matomo 是開源的替代品 谷歌分析這是使用最廣泛的網絡分析軟件。
什麼是網絡分析?
網站使用網絡分析軟件來了解網站每天/每週/每月有多少訪問者,他們使用的網絡瀏覽器等等。這是幫助您的網站發展的重要軟件。 谷歌分析很棒,但網站訪問者數據存儲在谷歌的服務器上。 如果您不想與第三方共享您的網站訪問者數據,您可以運行自己的網絡分析軟件。它們是谷歌分析的許多自託管替代品,而 Matomo 是一個很好的替代品。
Matomo 特點
Matomo 的開源(GPL v3 + 許可)自託管版本可以查看以下報告:
- 熱門關鍵字和搜索引擎、網站、社交媒體網站。
- 主頁 URL、頁面標題、用戶國家、提供商、操作系統、瀏覽器市場份額、屏幕分辨率、桌面和移動設備。
- 參與度(在網站上花費的時間、每次訪問的頁面數、重複訪問)。
- 熱門事件、自定義變量、熱門進入/退出頁面、下載文件等。
- 它分為四個主要的分析報告類別:訪問者、操作、引薦來源和目標/電子商務(超過 30 份報告)。
- 統計電子郵件報告。
- Web 服務器日誌分析。
- 禁用 JavaScript 以跟踪訪問者。
- GDPR 合規工具(例如 cookie 同意)
- 安裝免費或高級插件以擴展和擴展 Matomo 的功能。
- 易於使用的基於 Web 的更新程序。該程序也可以使用命令行進行更新。
- 更多的。
有關功能的完整列表,請參閱 Matomo 功能頁面。特別是,我喜歡 Matomo 按頁面瀏覽量列出所有頁面的能力,每個頁面的跳出率和退出率,以及實時訪問者地圖。
Matomo 現場觀眾地圖
自託管 Matomo 的好處
- 完全控制您的數據。數據僅存儲在服務器上,您可以選擇服務器所在的國家/地區。
- 沒有數據限制。您可以根據需要保存盡可能多的數據。
- 完全可定制和可擴展。
- Firefox 已開始阻止跨站點跟踪 cookie,包括 Google Analytics。通過在您自己的域名下託管您的分析軟件,跟踪 cookie 將不會被阻止。
託管在雲中的 Matomo 具有其他功能,但您可以在具有相同功能的自託管實例上安裝高級插件。
在 Ubuntu 20.04 上安裝 MatomoWebAnalytics (Piwik) 的先決條件
您將需要您的域名和服務器來學習本教程。我在 NameCheap 中註冊了我的域名。這是為了以低廉的價格提供終身免費的whois隱私保護。 1 GRAM 的服務器足以運行 Matomo。這是我推薦的託管服務提供商。我都用過。
- Vultr(起價 2.50 美元/月,需要信用卡)
- DigitalOcean(每月 5 美元起,無需信用卡,可使用 Paypal)。
擁有服務器後,在服務器上安裝 Ubuntu 並按照以下步驟操作:
Matomo 是用 PHP 編寫的,使用 MySQL / MariaDB 數據庫。要遵循本教程,我們假設您已經在 Ubuntu 20.04 上設置了 LAMP 或 LEMP 堆棧。如果沒有,請查看以下教程之一。
- 如何在 Ubuntu 20.04 服務器上安裝 LAMP 堆棧
- 如何在 Ubuntu 20.04 服務器上安裝 LEMP 堆棧
設置好 LAMP 或 LEMP 堆棧後,請返回此處繼續閱讀。
第 1 步:將 Matomo 下載到 Ubuntu 20.04
通過 SSH 登錄到服務器。您始終可以使用以下命令將最新版本的 Matomo 下載到您的服務器:
wget https://builds.matomo.org/matomo-latest.zip
下載後,使用以下命令解壓壓縮包 unzip
..
sudo apt install unzip sudo mkdir -p /var/www/ sudo unzip matomo-latest.zip -d /var/www/
這個 -d
該選項指定目標目錄。 Matomo Web 文件將被提取到 /var/www/matomo/
接下來,您需要更改該目錄的所有者,如下所示: www-data
允許 Web 服務器寫入此目錄。
sudo chown www-data:www-data /var/www/matomo/ -R
第 2 步:在 MariaDB 中創建數據庫和用戶
使用以下命令登錄 MariaDB 數據庫服務器:
sudo mysql
或者,您可以使用此命令登錄。
sudo mariadb
接下來,創建一個 Matomo 數據庫。為本教程命名數據庫 matomo
..你可以使用任何你喜歡的名字。
create database matomo;
創建數據庫用戶。同樣,您可以為該用戶使用您喜歡的任何名稱。交換 your-password
請使用您的首選密碼。
create user matomouser@localhost identified by 'your-password';
授予此用戶所有權限 matomo
數據庫。
grant all privileges on matomo.* to matomouser@localhost;
更新權限並退出。
flush privileges; exit;
第 3 步:創建 Apache 或 Nginx 配置文件
阿帕奇
如果您使用 Apache Web 服務器,請在內部創建一個虛擬主機配置文件 /etc/apache2/sites-available/
目錄。
sudo nano /etc/apache2/sites-available/matomo.conf
將以下文本放入文件中。交換 analytics.example.com
使用您自己的域名。 記得在 DNS Manager 中為您的域名設置 A 記錄。
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName analytics.example.com
DocumentRoot /var/www/matomo/
<Directory /var/www/matomo>
DirectoryIndex index.php
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Files "console">
Options None
Require all denied
</Files>
<Directory /var/www/matomo/misc/user>
Options None
Require all granted
</Directory>
<Directory /var/www/matomo/misc>
Options None
Require all denied
</Directory>
<Directory /var/www/matomo/vendor>
Options None
Require all denied
</Directory>
ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined
</VirtualHost>
保存並關閉文件。然後啟用這個虛擬主機。
sudo a2ensite matomo.conf
要使更改生效,請重新加載 Apache Web 服務器。
sudo systemctl reload apache2
nginx
如果你使用 Nginx 網絡服務器 matomo.conf
記錄 /etc/nginx/conf.d/
目錄。
sudo nano /etc/nginx/conf.d/matomo.conf
將以下文本放入文件中。交換 analytics.example.com
使用您自己的域名。 記得在 DNS Manager 中為您的域名設置 A 記錄。
server {
listen [::]:80;
listen 80;
server_name analytics.example.com;
access_log /var/log/nginx/matomo.access.log;
error_log /var/log/nginx/matomo.error.log;
root /var/www/matomo/;
index index.php;
## only allow accessing the following php files
location ~ ^/(index|matomo|piwik|js/index).php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
## needed for HeatmapSessionRecording plugin
location = /plugins/HeatmapSessionRecording/configs.php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
## deny access to all other .php files
location ~* ^.+.php$ {
deny all;
return 403;
}
## serve all other files normally
location / {
try_files $uri $uri/ =404;
}
## disable all access to the following directories
location ~ /(config|tmp|core|lang) {
deny all;
return 403; # replace with 404 to not show these directories exist
}
location ~ /.ht {
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;
## Cache images,CSS,JS and webfonts for an hour
## Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade
expires 1h;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~ /(libs|vendor|plugins|misc/user) {
deny all;
return 403;
}
## properly display textfiles in root directory
location ~/(.*.md|LEGALNOTICE|LICENSE) {
default_type text/plain;
}
}
保存並關閉文件。 測試您的 Nginx 配置,然後重新加載 Nginx 以使您的更改生效。
sudo nginx -t sudo systemctl reload nginx
第 4 步:安裝並啟用 PHP 模塊
運行以下命令安裝 Matomo 需要或推薦的 PHP 模塊。
sudo apt install php-imagick php7.4-mysql php7.4-fpm php7.4-common php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl
如果您使用的是 Apache Web 服務器,則需要重新加載服務器才能使用這些 PHP 模塊運行。
sudo systemctl reload apache2
Nginx 用戶不需要重新加載。
您現在應該能夠訪問基於 Web 的 Matomo 安裝嚮導。 https://analytics.example.com
但是,讓我們在輸入信息之前啟用 HTTPS。
第 5 步:啟用 HTTPS
您可以通過安裝 Let’s Encrypt 頒發的免費 TLS 證書來啟用 HTTPS,以在您訪問 Matomo Web 界面時加密 HTTP 流量。通過運行以下命令在 Ubuntu 20.04 上安裝 Let’s Encrypt 客戶端 (certbot):
sudo apt update sudo apt install certbot
如果要使用 Nginx,還需要安裝 Certbot Nginx 插件。
sudo apt install python3-certbot-nginx
然後運行以下命令獲取並安裝 TLS 證書。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com
如果您使用 Apache,您還需要安裝 Certbot Apache 插件。
sudo apt install python3-certbot-apache
然後運行此命令以獲取並安裝 TLS 證書。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com
解釋:
--nginx
: 使用 nginx 插件。--apache
: 使用 Apache 插入。--agree-tos
: 我接受使用條款。--redirect
: 301 通過重定向強制 HTTPS。--hsts
:將 Strict-Transport-Security 標頭添加到所有 HTTP 響應。強制瀏覽器始終對域使用 TLS。 防止 SSL / TLS 剝離。--staple-ocsp
:啟用 OCSP 訂書釘。有效的 OCSP 響應被裝訂到 TLS 期間服務器提供的證書。
現在將自動獲取並安裝證書。
第 6 步:在 Web 瀏覽器中完成安裝
去 https://analytics.example.com
啟動基於 Web 的安裝嚮導。然後點擊 Next
按鈕。
檢查您的系統是否滿足 PHP 擴展等要求。如果滿足所有要求,請單擊 Next
..
下一步是輸入您之前創建的 MariaDB 用戶名、密碼和數據庫名稱。您可以對其他字段使用默認值。
[次へ]單擊時,安裝嚮導會自動在數據庫中創建一些表。點擊 Next
接下來我會說。
在下一個屏幕上,為 Matomo Web 界面創建一個管理員用戶。
創建管理員用戶後,您需要添加一個網站來收集分析數據。
接下來,您需要將 JavaScript 跟踪代碼添加到您的網站。
當你完成時。[次へ]單擊按鈕完成 Matomo 安裝。您現在可以登錄到您的 Matomo 儀表板來查看您的訪問者數據。
禁用 JavaScript 以跟踪用戶
在 Matomo Web 界面中,點擊右上角的齒輪圖標, 網站 -> 跟踪代碼您可以選擇禁用 JavaScript 並跟踪用戶。
有一個新的跟踪代碼。您需要將現有的跟踪代碼替換為新的跟踪代碼。事實上,新的跟踪代碼只是在您現有的跟踪代碼中添加了以下行:
<noscript><p><img src="https://analytics.example.com/matomo.php?idsite=1&rec=1" style="border:0;" alt="" /></p></noscript>
如果訪問者禁用或無法使用 JavaScript,訪問者的瀏覽器將下載圖像。
為中高流量網站設置 cron 作業
如果您的網站每天有成千上萬的頁面瀏覽量,您可能需要設置一個 cron 作業來自動歸檔 Matomo 報告。使用以下命令創建一個 cron 作業文件:
sudo nano /etc/cron.d/matomo-archive
然後將以下行添加到文件中:
MAILTO="[email protected]" 5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://analytics.example.com > /dev/null
標準輸出被發送到 /dev/null 並且標準錯誤被發送到您的電子郵件地址。保存並關閉文件。此 cron 作業在 5 分鐘後每小時運行一次。
如何設置電子郵件通知
如果您有多個用戶,我們建議您允許 Matomo 向您發送電子郵件通知,例如密碼重置電子郵件。有關如何設置郵件服務器的信息,請參閱以下教程。 筆記 強烈建議在新的干淨操作系統上運行 iRedMail 郵件服務器。使用其他 Web 應用程序在您的操作系統上安裝 iRedMail 可能會失敗或損壞現有應用程序。
- 如何使用 iRedMail 在 Ubuntu 20.04 上輕鬆設置全功能郵件服務器
如果您不想運行自己的電子郵件服務器,則可以改為設置 SMTP 中繼。請參閱下面的教程。
- 如何在 Ubuntu 20.04 服務器上配置 Postfix SMTP 中繼
如何使用 GeoIP 設置準確的地理位置
默認情況下,Matomo 根據訪客所說的語言推斷訪客的位置。這是不准確的。例如,許多非美國訪問者選擇 En-US 作為其操作系統默認語言,因此 Matomo 報告顯示更多“美國訪問者”。為了更好地定位,您可以使用免費的 MaxMind GeoLite2 IP 數據庫。
首先,您需要使用 MaxMind 創建一個帳戶。 您將收到一封來自 Maxmind 的電子郵件。單擊電子郵件中的鏈接以設置密碼並登錄到您的 MaxMind 帳戶。下一個, My License Key
位於左側邊欄。
點擊 生成新的許可證密鑰 按鈕。
為您的許可證密鑰命名,[No
「」は「このキーはGeoIPの更新に使用されますか?」という意味です。 “次にクリック Confirm
ボタン。ライセンスキーが表示されます。ライセンスキーは1回しか表示されないため、クリップボードにコピーしてください。
次に、Matomo Webインターフェースの歯車アイコン(管理者)をクリックし、に移動します。 System
-> Geolocation
次に、最新のMaxmindGeoIPデータベースをサーバーにダウンロードします。 your_license_keyを実際のライセンスキーに置き換えます。
wget -O GeoLite2-City.tar.gz 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=your_license_key'
圧縮されたパッケージを抽出します。
tar xvf GeoLite2-City.tar.gz
tarballは、次のような名前のディレクトリに解凍されます GeoLite2-City_20200814
次に、GeoLite2-City.mmdbファイルをに移動します /var/www/matomo/misc/
目次。
sudo mv GeoLite2-City_20200814/GeoLite2-City.mmdb /var/www/matomo/misc/
次に、Matomoジオロケーション設定ページをリロードします。 2番目のロケーションプロバイダーを選択します。 GeoIP 2 (Php)
。
[保存]單擊按鈕以保存您的設置。在此頁面的下方,您還可以輸入下載 URL 以允許 Matomo 自動更新 GeoIP 數據庫。
- MaxMind的下載地址是: https://download.maxmind.com/app/geoip_download? edition_id = GeoLite2-City & 後綴 = tar.gz & license_key =your_license_key
- 該數據庫每週更新一次。
在 Cloudflare CDN 後面運行 Matomo
如果 Matomo 在 Cloudflare CDN 後面運行,則 Matomo 只知道 Cloudflare 服務器的 IP 地址。要在 Nginx 中查看訪問者的實際 IP 地址,請編輯 Nginx 主配置文件。
sudo nano /etc/nginx/nginx.conf
將以下指令添加到 http 部分。
set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 104.16.0.0/12; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 199.27.128.0/21; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; # use any of the following two real_ip_header CF-Connecting-IP; #real_ip_header X-Forwarded-For;
set_real_ip_from 定義了一個已知可發送正確備用地址的可信地址(在本例中為 Cloudflare IP 地址)。保存並關閉文件。然後重新加載 Nginx 以使更改生效。
sudo systemctl reload nginx
您可以在 Matomo 上查看訪問者的 IP 地址 儀表板 -> 遊客 -> 訪問日誌..
您還可以查看 Cloudflare 當前的 IP 範圍。
其他活動
- 訂閱 Matomo Changelog RSS 提要,以便在新版本發佈時收到通知。
- 請參閱 Matomo 的安全提示。
- 閱讀 Matomo 的性能調優技巧。
而已!我們希望本教程能幫助您在 Ubuntu 20.04 服務器上安裝 Matomo Apache 或 Nginx。與往常一樣,如果您覺得本文有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。照顧好自己?