GNU/Linux >> Linux の 問題 >  >> Ubuntu

Apache/Nginxを使用してUbuntu20.04にMatomoWebAnalytics(Piwik)をインストールします

このチュートリアルでは、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&amp;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をインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、より多くのヒントやコツを入手してください。気をつけて🙂


Ubuntu
  1. Ubuntu12.10にApacheWebサーバーをインストールします

  2. Ubuntu20.04にMatomoWebAnalyticsをインストールする方法

  3. Nginx を使用して Ubuntu 20.04 に phpMyAdmin をインストールする

  1. Ubuntu18.04にNginxWebサーバーをインストールする方法

  2. Ubuntu16.04にApacheを使用してJenkinsAutomationServerをインストールする方法

  3. Ubuntu16.04にPHP-FPMを使用してCaddyWebサーバーをインストールする方法

  1. Ubuntu15.10にNginxを使用してPiwikをインストールする方法

  2. Ubuntu20.04にMatomoWebAnalyticsをインストールする方法

  3. Apache/Nginxを使用してUbuntu20.04にFileRunをインストールする方法