このチュートリアルでは、ApacheまたはNginxWebサーバーを使用してUbuntu18.04にMatomoWeb分析(旧称Piwik)をインストールする方法を示します。 Matomoは、最も広く使用されているWeb分析ソフトウェアであるGoogleAnalyticsのオープンソース代替手段です。
Web Analyticsとは何ですか?
Web分析ソフトウェアは、1日、1週間、1か月にサイトにアクセスしている訪問者の数、使用しているWebブラウザーなどを知るために、Webサイトで使用されます。Webサイトの成長に役立つ重要なソフトウェアです。 Googleアナリティクスは優れていますが、ウェブサイトの訪問者のデータはGoogleのサーバーに保存されています。 Webサイトの訪問者のデータをサードパーティと共有したくない場合は、独自のWeb分析を実行できます。これらはGoogleアナリティクスの多くのセルフホスト型の代替手段であり、Matomoは優れたものです。
Matomoの機能
オープンソース(GPL v3 +ライセンス)のセルフホストMatomoエディションでは、次のレポートを表示できます。
- 上位のキーワードと検索エンジン、ウェブサイト、ソーシャルメディアのウェブサイト。
- トップページのURL、ページタイトル、ユーザーの国、プロバイダー、オペレーティングシステム、ブラウザの市場シェア、画面解像度、デスクトップVSモバイル。
- エンゲージメント(サイト滞在時間、1回の訪問あたりのページ数、繰り返しの訪問)
- 上位のキャンペーン、カスタム変数、上位の入退場ページ、ダウンロードしたファイルなど。
- 4つの主要な分析レポートカテゴリ(訪問者、アクション、リファラー、目標/ eコマース(30以上のレポート))に分類されます。
- 統計メールレポート。
- Webサーバーのログ分析。
- JavaScriptを無効にした訪問者を追跡します。
- GDPRに準拠するためのツール(Cookieの同意など)
- 無料またはプレミアムプラグインをインストールして、Matomoの機能を拡張および拡張します。
- その他。
機能の完全なリストについては、Matomoの機能ページを確認してください。 MatomoがすべてのWebページをページビューごとに一覧表示し、各Webページのバウンス率と終了率を表示できるという事実が特に気に入っています。また、リアルタイムの訪問者マップ。
Matomoリアルタイムビジターマップ
セルフホストのMatomoのメリット
- データの完全な制御。データはサーバーにのみ保存され、サーバーを配置する国を選択できます。
- データ制限はありません。サーバーが保持できる限り多くのデータを保持できます。
- 完全にカスタマイズ可能で拡張可能です。
- Firefoxは、Googleアナリティクスを含むクロスサイトトラッキングCookieのブロックを開始しました。独自のドメイン名で分析ソフトウェアをホストすることで、トラッキングCookieがブロックされることはありません。
クラウドでホストされるMatomoには追加の機能がありますが、セルフホストのインスタンスにプレミアムプラグインをインストールして、同じ機能を取得できます。
Ubuntu18.04にMatomoWebAnalytics(Piwik)をインストールするための前提条件
このチュートリアルに従うには、ドメイン名とサーバーが必要です。ドメイン名をNameCheapに登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるためです。 Matomoを実行するには512MBのRAMを搭載したサーバーで十分です。ここに、私が推奨するホスティングプロバイダーを示します。私はそれらすべてを使用しました。
- Vultr(月額$ 2.5から。クレジットカードが必要)
- DigitalOcean(月額5ドルから。クレジットカードは必要ありません。Paypalを使用できます)。
サーバーを入手したら、Ubuntuをサーバーにインストールし、以下の手順に従います。
MatomoはPHPで記述されており、MySQL/MariaDBデータベースを使用しています。このチュートリアルに従うために、Ubuntu18.04でLAMPまたはLEMPスタックをすでに設定していることを前提としています。そうでない場合は、次のチュートリアルのいずれかを確認してください。
- Ubuntu18.04サーバーにLAMPスタックをインストールする方法
- Ubuntu18.04サーバーにLEMPスタックをインストールする方法
LAMPまたはLEMPスタックの設定が完了したら、ここに戻って読み進めてください。
ステップ1:Ubuntu18.04にMatomoをダウンロードする
SSH経由でサーバーにログインします。次のコマンドをいつでも使用して、サーバーに最新バージョンのMatomoをダウンロードできます。この記事の執筆時点では、新機能であるタグマネージャーが付属しているMatomo3.7の最新バージョンです。これは、過去数年間のMatomoにとって最大のマイルストーンの1つです。
wget https://builds.matomo.org/matomo-latest.zip
ダウンロードしたら、 unzip
でアーカイブを抽出します 。
sudo apt install unzip sudo unzip matomo-latest.zip -d /var/www/
-d
オプションは、ターゲットディレクトリを指定します。 MatomoWebファイルは/var / www / matomo /
に抽出されます 。次に、このディレクトリの所有者を www-data
に変更する必要があります Webサーバー(Nginx)がこのディレクトリに書き込めるようにします。
sudo chown www-data:www-data /var/www/matomo/ -R
ステップ2:MariaDBでデータベースとユーザーを作成する
次のコマンドを使用して、MariaDBデータベースサーバーにログインします。 MariaDBは現在unix_socket
を使用しているため ユーザーログインを認証するプラグイン。MariaDBのrootパスワードを入力する必要はありません。 mysql
のプレフィックスを付ける必要があります sudo
を使用したコマンド 。
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 identified by 'your-password';
特権をフラッシュして終了します。
flush privileges; exit;
ステップ3:ApacheまたはNginx構成ファイルを作成する
Apache
Apache Webサーバーを使用する場合は、 / etc / apache2 / sites-available /
に仮想ホスト構成ファイルを作成します。 ディレクトリ。
sudo nano /etc/apache2/sites-available/matomo.conf
次のテキストをファイルに入れます。赤い色のテキストを実際のデータに置き換えます。ドメイン名に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
次のテキストをファイルに入れます。赤い色のテキストを実際のデータに置き換えます。ドメイン名にAレコードを設定することを忘れないでください。
server { listen [::]:80; # remove this if you don't want Matomo to be reachable from IPv6 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.2-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.2-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.2-mysql php7.2-fpm php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-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)をUbuntu18.04にインストールします。
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot 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ダッシュボードにログインして、訪問者データを表示できます。
中および高トラフィックの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を使用してUbuntu18.04でフル機能のメールサーバーを簡単にセットアップする方法
独自のメールサーバーを実行したくない場合は、代わりにSMTPリレーを設定できます。次のチュートリアルをご覧ください。
- Ubuntu18.04サーバーでPostfixSMTPリレーを設定する方法
GeoIPを使用して正確なジオロケーションを設定する方法
デフォルトでは、Matomoは訪問者が使用する言語に基づいて訪問者の場所を推測します。これは正確ではありません。たとえば、米国以外の訪問者の多くはOSのデフォルト言語としてEn-USを選択しているため、Matomoレポートには「米国の訪問者」が増えます。
より良いジオロケーションを取得するには、Matomoの歯車アイコン(管理)をクリックし、システム
に移動します ->ジオロケーション
。次に、最新のMaxmindGeoIPデータベースをサーバーにダウンロードします。
wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
tarballを抽出します。
tar xvf GeoLite2-City.tar.gz
tarballは、この GeoLite2-City_20190226
のような名前のディレクトリに抽出されます。 。次に、GeoLite2-City.mmdbファイルを / var / www / matomo / misc /
に移動します ディレクトリ。
sudo mv GeoLite2-City_20190226/GeoLite2-City.mmdb /var/www/matomo/misc/
ここで、Matomoジオロケーション設定ページをリロードします。 2番目のロケーションプロバイダーを選択します:GeoIP 2(Php)
[保存]ボタンをクリックして、設定を保存します。このページの下部に、ダウンロードURLを入力して、MatomoがGeoIPデータベースを自動的に更新できるようにすることもできます。
その他の作業
- Matomo changelog RSSフィードを購読して、新しいバージョンがリリースされたときに通知を受け取ります。
- Matomoのセキュリティのヒントを確認してください。
- Matomoのパフォーマンスチューニングのヒントをお読みください。
それでおしまい!このチュートリアルが、ApacheまたはNginxを使用してUbuntu18.04サーバーにMatomoをインストールするのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、その他のヒントやコツを入手してください。気をつけて🙂