このチュートリアルでは、MatomoWebアナリティクスをインストールする方法を紹介します。 (以前はPiwikと呼ばれていました)Ubuntu20.04とApacheまたはNginxWebサーバー。 Matomoは、 Google Analyticsのオープンソースの代替手段です。 、これは最も広く使用されているWeb分析ソフトウェアです。
Web Analyticsとは何ですか?
Web分析ソフトウェアは、1日、1週間、1か月にサイトにアクセスしている訪問者の数、使用しているWebブラウザーなどを知るために、Webサイトで使用されます。Webサイトの成長に役立つ重要なソフトウェアです。 Google Analyticsは優れていますが、ウェブサイトの訪問者のデータはGoogleのサーバーに保存されています。 Webサイトの訪問者のデータをサードパーティと共有したくない場合は、独自のWeb分析ソフトウェアを実行できます。これらはGoogleアナリティクスの多くのセルフホスト型の代替手段であり、Matomoは優れたものです。
Matomoの機能
オープンソース(GPL v3 +ライセンス)のセルフホストMatomoエディションでは、次のレポートを表示できます。
- 上位のキーワードと検索エンジン、ウェブサイト、ソーシャルメディアのウェブサイト。
- トップページのURL、ページタイトル、ユーザーの国、プロバイダー、オペレーティングシステム、ブラウザの市場シェア、画面解像度、デスクトップVSモバイル。
- エンゲージメント(サイト滞在時間、1回の訪問あたりのページ数、繰り返しの訪問)
- 上位のキャンペーン、カスタム変数、上位の入退場ページ、ダウンロードしたファイルなど。
- 4つの主要な分析レポートカテゴリ(訪問者、アクション、リファラー、目標/ eコマース(30以上のレポート))に分類されます。
- 統計メールレポート。
- Webサーバーのログ分析。
- JavaScriptを無効にした訪問者を追跡します。
- GDPRに準拠するためのツール(Cookieの同意など)
- 無料またはプレミアムプラグインをインストールして、Matomoの機能を拡張および拡張します。
- 使いやすいWebベースのアップデーター。コマンドラインアップデーターも利用できます。
- その他。
機能の完全なリストについては、Matomoの機能ページを確認してください。 MatomoがすべてのWebページをページビューごとに一覧表示し、各Webページのバウンス率と終了率、およびリアルタイムの訪問者マップを表示できるという事実が特に気に入っています。

Matomoリアルタイムビジターマップ
セルフホストのMatomoのメリット
- データの完全な制御。データはサーバーにのみ保存され、サーバーを配置する国を選択できます。
- データ制限はありません。サーバーができる限り多くのデータを保持できます。
- 完全にカスタマイズ可能で拡張可能です。
- Firefoxは、Googleアナリティクスを含むクロスサイトトラッキングCookieのブロックを開始しました。独自のドメイン名で分析ソフトウェアをホストすることで、トラッキングCookieがブロックされることはありません。
クラウドでホストされるMatomoには追加の機能がありますが、セルフホストのインスタンスにプレミアムプラグインをインストールして、同じ機能を取得できます。
Ubuntu20.04にMatomoWebAnalytics(Piwik)をインストールするための前提条件
このチュートリアルに従うには、ドメイン名とサーバーが必要です。私は自分のドメイン名をNameCheapに登録しました。これは、価格が低く、whoisのプライバシー保護が一生無料になるためです。 Matomoを実行するには1GRAMを搭載したサーバーで十分です。ここに、私が推奨するホスティングプロバイダーを示します。私はそれらすべてを使用しました。
- Vultr(月額$ 2.5から。クレジットカードが必要)
- DigitalOcean(月額5ドルから。クレジットカードは必要ありません。Paypalを使用できます)。
サーバーを入手したら、Ubuntuをサーバーにインストールし、以下の手順に従います。
MatomoはPHPで記述されており、MySQL/MariaDBデータベースを使用しています。このチュートリアルに従うために、Ubuntu20.04でLAMPまたはLEMPスタックをすでに設定していることを前提としています。そうでない場合は、次のチュートリアルのいずれかを確認してください。
- Ubuntu20.04サーバーにLAMPスタックをインストールする方法
- Ubuntu20.04サーバーにLEMPスタックをインストールする方法
LAMPまたはLEMPスタックの設定が完了したら、ここに戻って読み進めてください。
ステップ1:Ubuntu20.04にMatomoをダウンロードする
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
オプションは、ターゲットディレクトリを指定します。 MatomoWebファイルは/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
Apache Webサーバーを使用する場合は、 / etc / apache2 / sites-available /
に仮想ホスト構成ファイルを作成します。 ディレクトリ。
sudo nano /etc/apache2/sites-available/matomo.conf
次のテキストをファイルに入れます。 analytics.example.com
を置き換えます あなた自身のドメイン名で。 DNSマネージャーでドメイン名の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
変更を有効にするには、ApacheWebサーバーをリロードします。
sudo systemctl reload apache2
Nginx
Nginx Webサーバーを使用する場合は、 matomo.conf
を作成します。 /etc/nginx/conf.d/
のファイル ディレクトリ。
sudo nano /etc/nginx/conf.d/matomo.conf
次のテキストをファイルに入れます。 analytics.example.com
を置き換えます あなた自身のドメイン名で。 DNSマネージャーでドメイン名の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ユーザーはリロードする必要はありません。
これで、 http://analytics.example.com
にあるMatomoWebベースのインストールウィザードにアクセスできるようになります。 、ただし、情報を入力する前に、HTTPSを有効にしましょう。
ステップ5:HTTPSを有効にする
Matomo WebインターフェースにアクセスしたときにHTTPトラフィックを暗号化するために、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にすることができます。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をUbuntu20.04にインストールします。
sudo apt update sudo apt install certbot
Nginxを使用する場合は、CertbotNginxプラグインもインストールする必要があります。
sudo apt install python3-certbot-nginx
次に、次のコマンドを実行してTLS証明書を取得してインストールします。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com
Apacheを使用する場合は、CertbotApacheプラグインもインストールする必要があります。
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
:利用規約に同意します。 -リダイレクト
:301リダイレクトでHTTPSを強制します。-
-hsts
:すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。 -
-staple-ocsp
:OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。
これで、証明書が取得され、自動的にインストールされます。
ステップ6:Webブラウザでのインストールを完了します
https://analytics.example.com
にアクセスします Webベースのインストールウィザードを起動します。次に、[次へコード>]をクリックします ボタン。
システムがPHP拡張機能などの要件を満たしているかどうかを確認します。すべての要件が満たされている場合は、[次へコード>]をクリックします 。
次のステップでは、前に作成したMariaDBのユーザー名、パスワード、データベース名を入力します。他のフィールドではデフォルト値を使用できます。
[次へ]をクリックすると、インストールウィザードによってデータベースにいくつかのテーブルが自動的に作成されます。 次へコード>をクリックします 続行します。
次の画面で、MatomoWebインターフェースの管理ユーザーを作成します。
管理者ユーザーを作成したら、分析データを収集するためのWebサイトを追加する必要があります。
次に、JavaScriptトラッキングコードをWebサイトに追加する必要があります。
それが終わったら。 [次へ]ボタンをクリックすると、Matomoのインストールが完了します。これで、Matomoダッシュボードにログインして、訪問者データを表示できます。
JavaScriptを無効にしてユーザーを追跡する
Matomo Webインターフェースで、右上隅にある歯車のアイコンをクリックしてから、Webサイトに移動します。 ->トラッキングコード 、JavaScriptを無効にしてユーザーを追跡することを選択できます。
新しいトラッキングコードがあります。既存のトラッキングコードを新しいものに置き換える必要があります。実際、新しいトラッキングコードは、既存のトラッキングコードに次の行を追加するだけです。
<noscript><p><img src="//analytics.example.com/matomo.php?idsite=1&rec=1" border:0;" alt="" /></p></noscript>
訪問者がJavaScriptを無効にしている場合、またはJavaScriptを使用できない場合、訪問者のブラウザは画像をダウンロードします。
中および高トラフィックのWebサイト用にcronジョブを設定する
ウェブサイトのページビューが1日あたり数千回ある場合は、Matomoレポートを自動アーカイブするためのcronジョブを設定する必要があります。次のコマンドを使用して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分過ぎに1時間ごとに実行されます。
メール通知の設定方法
複数のユーザーがいる場合は、Matomoがパスワードリセットメールなどのメール通知を送信できるようにすることをお勧めします。メールサーバーの設定方法については、次のチュートリアルをご覧ください。 注 新しいクリーンなOSでiRedMailメールサーバーを実行することを強くお勧めします。他のWebアプリケーションがあるOSにiRedMailをインストールすると、失敗し、既存のアプリケーションが破損する可能性があります。
- iRedMailを使用してUbuntu20.04でフル機能のメールサーバーを簡単にセットアップする方法
独自のメールサーバーを実行したくない場合は、代わりにSMTPリレーを設定できます。次のチュートリアルをご覧ください。
- Ubuntu20.04サーバーでPostfixSMTPリレーを設定する方法
GeoIPを使用して正確なジオロケーションを設定する方法
デフォルトでは、Matomoは訪問者が使用する言語に基づいて訪問者の場所を推測します。これは正確ではありません。たとえば、米国以外の訪問者の多くは、OSのデフォルト言語としてEn-USを選択しているため、Matomoレポートには「米国の訪問者」が多くなります。より良いジオロケーションを得るために、無料のMaxMindGeoLite2IPデータベースを使用できます。
まず、MaxMindでアカウントを作成する必要があります。 Maxmindからメールが届きます。メール内のリンクをクリックしてパスワードを設定し、MaxMindアカウントにログインします。次に、 My License Key
を選択します 左側のバーにあります。
新しいライセンスキーの生成をクリックします ボタン。
ライセンスキーに名前を付け、「いいえ
」を選択します 」は「このキーはGeoIPアップデートに使用されますか?」次に、確認
をクリックします ボタン。ライセンスキーが表示されます。ライセンスキーは1回だけ表示されるので、クリップボードにコピーしてください。
次に、Matomo Webインターフェースの歯車アイコン(管理)をクリックし、 System
に移動します。 ->ジオロケーション
。次に、最新の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'
tarballを抽出します。
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のダウンロードURLは次のとおりです:https://download.maxmind.com/app/geoip_download?edition_id =GeoLite2-City&suffix =tar.gz&license_key =your_license_key
- データベースを毎週更新します。
CloudflareCDNの背後でMatomoを実行する
MatomoがCloudflareCDNの背後で実行されている場合、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のパフォーマンスチューニングのヒントをお読みください。
それでおしまい!このチュートリアルが、ApacheまたはNginxを使用してUbuntu20.04サーバーにMatomoをインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂