Hero img
matomo(Piwik)インストール

matomoをvpsにインストールしてみる

Google Analyticsの代わりにmatomoを使うためVPSサーバーにインストールをしてみました。


目次

  • matomo
  • 今回matomoを使おうとしたきっかけ
  • google analyticsとの違い
  • 目標
  • 動作環境
  • matomoを使用する為に
  • php周りのインストール
  • phpのconfigの修正
  • php.iniの修正
  • phpとnginxのテスト
  • index.phpファイルの追加
  • mariadbのインストール
  • mariadbの初期化
  • データベースの作成
  • matomoのインストール
  • matomoのダウンロード
  • matomoのパーティーションの変更
  • nginxconfig
  • matomoの設定
  • まとめ

matomo

ウェブアクセス解析ツールです。オープンソースとして公開されているため、無料で利用が可能です。同じものは他にowa(open web analytics)があります。

今回matomoを使おうとしたきっかけ

ユニバーサルアナリティクス(UA)が終了しGA4を使おうとしていましたが結構複雑で、stream設定、タグ付け等があり、よくわからない、設定できてもいざ使おうとしたら、見づらいという問題がありました。
そしてウェブの表示速度パフォーマンスをLighthouseで確認したところ、結構影響があることが判明しました。

google analyticsとの違い

正直あまり違いはありません。
matomoはよく作られていて、google analyticsと同じような事が実現できます。 逆に言うとgoogleとの違いはあまりありません。 違いと言えばデータを無期限で保持することができるところだとおもう。GA4でも最大14ヶ月できるようなので、それ以上保存する必要性はあまりない気がするので微妙なところ
他にはヒートマップ 検索キーワードの取得ができるらしいこれはかなりいい機能だが無料では使用できない。

  • ヒートマップ:Heatmap & Session Recording USD229/year
  • 検索キーワード:Search Engine Keywords Performance USD159/year

目標

  • vpsサーバーにmatomoをインストールして起動させる

動作環境

  • AlmaLinux 9.0
  • nginx
  • mariadb
  • matomo 4.12.0
  • php 8.0.13
    nginxはインストール済とします。
    http,httpsのファイヤーウォールの設定は済とします。

matomoを使用する為に

matomoを利用する為には、ウェブサーバーとphpとデータベースが必要になります。 また、sslでの接続が必要なため、証明書も必要になります。
選択肢があるものは以下の二つです

  • webserver nginx or apache
  • databases mysql or mariadb
    私の場合はnginxとmariadbを使用しています。

php周りのインストール

matomoはphpを必要とするのでnginxでphpを利用できるようにします。また、mariadbを使用するので操作用のライブラリもインストールします。

dnf install php php-curl php-gd php-cli php-xml php-mbstring php-pdo php-mysqlnd -y

phpのconfigの修正

  • php関連のライブラリーのデフォルトの設定値はapacheになっているのでこれをnginxに変更します。
  • acl_usersが有効になっているとgroupとオーナーがnginxに変更されないようなのでこれをコメントアウトします。
  • www.sockを有効化します。なっていたら大丈夫です。
vi /etc/php-fpm.d/www.conf

#line 24あたり
user = nginx
group = nginx
#line 49あたり
listen.owner = nginx
listen.group = nginx
listen.mode = 0666

#line 56あたり
;acl_users = nginx
;acl_groups = nginx

#line 39あたり
listen = /run/php-fpm/www.sock

再起動させてwww.sockが正常にnginx:nginxと変更されているか確認します。

# 再起動
systemctl restart php-fpm
# 確認
ls -l /run/php-fpm/www.sock
#結果

srw-rw-rw- 1 nginx nginx 0 Oct 17 14:14 /run/php-fpm/www.sock

上記のようになっていれば正常に反映されています。

php.iniの修正

matomoはphpのメモリーを512Mを推奨しているため、phpの修正はメモリーを512Mに変更し、ついでにタイムゾーンをAsia/Tokyoに変更します。

vi /etc/php.ini
memory_limit = 512M
data.timezone = "Asia/Tokyo"

phpとnginxのテスト

nginxに新しくバーチャルホスト設定を行いテストします。 テストなので一旦nginx.confを直接編集します。編集前に必ずバックアップを取っておいてください。
今回の追加場所はhttp内になります。

nginx.config
http {
#追記
server {
  server_name subdomain.name.com;
  listen 80;
  root /var/www/phptest;
  index index.php;
    location / {
        try_files $uri /index.php$is_args$args;
    }
    location ~ \.php$ {
        fastcgi_pass   unix:/run/php-fpm/www.sock;
        fastcgi_index  index.php;
        include fastcgi_params;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
#省略.........
}

上で修正するヶ所はserver_nameとrootの部分ですね、その他あるとすればfastcgi_passです。 fastcgi_passは先ほどwww.confのlistenと同じパスです。

index.phpファイルの追加

rootをphptestと設定したのでphptestのフォルダーの中にindex.phpを追加します。
phpの中身は一行だけです。

<?php phpinfo(); ?>

最後にnginxの再起動をかけ、ドメインにアクセスすると、phpの情報が表示されます。 phpinfo

これでnginxでPHPが使えることを確認することができました。先ほどnginxの設定は不要なのでnginx.confを元に戻しておきます。

mariadbのインストール

matomoがアクセスできる必要なデータベース、ユーザーを作成します。
データベースの設定に関しては、そこまで難しくありません。
以下コマンドでmariadbをインストールし、起動、自動起動させます。

dnf install mariadb-server
systemctl enable --now mariadb
systemctl status mariadb

mariadbの初期化

mariadbの初期設定を行います。初期設定を半自動化してくれるコマンドがあるのでそれを使用します。
色々聞かれると思うのでお好みで設定してください。あまり気にしないのであればとりあえず全てYで大丈夫です。

mysql_secure_installation

聞かれる順番

  1. 1.rootのパスワード設定
  2. 2.他のユーザーの削除
  3. 3.rootのリモート接続の拒否
  4. 4.初期のデータベースの削除
  5. 5.設定の即時反映

データベースの作成

matomo用のデータベースとユーザーを作成します。 rootでログインし、matomo用のデータベースとID,PWを設定します。

mysql -u root -p
CREATE DATABASE matomodb;
GRANT ALL ON matomodb.* TO 'matomouser' IDENTIFIED BY 'matomopasswrod';

以上でデータベースの設定が終わりました。

matomoのインストール

matomoをダウンロードし、初期設定を行います。

matomoのダウンロード

直でダウンロードしてもいいですし、ftpで転送しても大丈夫です。
公式で解説されているので分かりやすいです。
今回はwgetで直接ダウンロードします。 nginxのフォルダー管理は/var/www/の中にしているのでディレクトリーを移動しダウンロード、解凍をします。
wgetでダウンロード解凍した場合はmatomoフォルダーが作成され必要なファイルが全て入っています。

cd /var/www
wget https://builds.matomo.org/matomo.zip && unzip matomo.zip

matomoのパーティーションの変更

上記と同じ方法でダウンロードした場合/var/www/matomoフォルダがあると思います。このmatomoフォルダのパーティーション、所有者を変更します。

chmod -R 755 /var/www/matomo
chown -R nginx:nginx /var/www/matomo

nginxconfig

最後にnginxの設定を変更します。sslの設定は設定済みとします。

server {
server_name subdomain.name.com;
listen 80;
return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    ssl_certificate     subdomain.name.com.pem;
    ssl_certificate_key subdomain.name.com.privkey.pem;
    server_name  subdomain.name.com;
    root /var/www/matomo;
    index index.php index.html;

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

		location / {
			try_files $uri /index.php$is_args$args;
		}
		location ~ \.php$ {
			fastcgi_pass   unix:/run/php-fpm/www.sock;
			fastcgi_index  index.php;
			fastcgi_read_timeout 240;
			fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
			include fastcgi_params;
			fastcgi_split_path_info ^(.+.php)(/.+)$;
    }
}

最後に再起動をかけます

systemctl restart nginx php-fpm

これでコマンドラインの複雑な設定が終了しました。 matomoが推奨しているnginxの設定は公式のgithubで配布解説されています適切な変更をお願い致します。

matomoの設定

  1. 1.指定のドメインにアクセスするとmatomoの画面が表示されます。
    matomo-welcome

  2. 2.matomoのインフォメーションが表示されます。 matomo-info

  3. 3.データベースの設定をします。
    matomo-setdatabases

  4. 4.matomoの管理者ユーザーを作成します。 matomo-create-superuser

  5. 5.登録するウェブサイトを追加します。 matomo-setup-website

  6. 6.ウェブサイト用のトラッキングコードが表示されるためこれをサイトに追加してください。 matomo-tracking-code

  7. 7.ダッシュボードの画面が表示されます。 matomo-dashboard

まとめ

nginxウェブサーバーにmatomoをインストールをしました。phpの設定とmariadbの設定があり、正直とても面倒でした。
nginxとphpがこれで使用できるようになったので他のソフトのwordpressのインストールや、nextcloudのインストールも簡単にできるようになりますが、 matomo単体だけのためにvpsを使うのはあまりおすすめできません。小規模なサイトであればレンタルサーバーにインストールし使用する方がいいと感じます。

関連記事

コメント

コメントを書く

質問や、間違いがありましたら、お気軽にどうぞ

※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください