0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

matomo analyticsを自サーバーに打ち込んでサイトをトラッキングする

Last updated at Posted at 2023-10-09

Matomoとは

Matomo is the leading Free/Libre open analytics platform.
Matomo is a full-featured PHP MySQL software program that you download and install on your own webserver. At the end of the five-minute installation process, you will be given a JavaScript code. Simply copy and paste this tag on websites you wish to track and access your analytics reports in real-time.
Matomo aims to be a Free software alternative to Google Analytics and is already used on more than 1,400,000 websites. Privacy is built-in!

githubより抜粋。簡単に言うとGPLv3ライセンスのOpenSource Analyticsソフト、もしくはプラットフォームです。機能面においても結構充実しており、言語やフレームワーク別のSDKもあります。筆者が触っていたのがweb(reactjs)だけでしたが、iosやandroidにも対応しているらしい。

自前でAnalyticsデータを保有したい人、もしくはGoogle Analyticsが使えない環境などには最適かと。

前書き

手順は結構ややこしいので、何回やったとしてもちょこちょこ忘れて、こここれで良かったけ?みたいな状況に結構陥ってしまうのでメモがてら記事にします。

実行環境は Debian11 + mariadb10 + nginx1.18 です。

便利のため直接 root としてコマンドを実行してます、rootじゃない方は適切にコマンドの前にsudoを付けてください。

前準備

インストールする前にまず mysql もしくは mriadb 、かつ nginx もしくは appache が必要なので、他の方の記事がいっぱいなので、ここでは割愛いたします。

筆者はDebian11 + mariadb10 + nginx1.18 + matomo4.15.1でやってます

インストール

まず 公式ぺーじ に行ってmatomoのダウンロードリンクをゲットします、リンク貰ったら wget でダウンロードします

wget https://builds.matomo.org/matomo.zip

# wget ない人はまず入れてから再度上のコマンドを実行しましょう
apt install wget

必要な依頼を打ち込みます

apt install php php-curl php-gd php-cli php-mysql php-xml php-mbstring

入れたら php のバージョンを一旦見ます

php --version

筆者は7.4.33なのでphp7.4-fpmを入れます

apt install php7.4-fpm

これで前準備は終わりです

先 download した matomo.zip を unzip します

# unzip 入ってないので一旦入れます
apt install unzip

# 解凍
unzip matomo.zip

解凍したら'How to install Matomo.html'のファイルとmatomoのフォルダーが見えるはず

'How to install Matomo.html'と先ダウンロードしたmatomo.zipはにいらないので消します

rm 'How to install Matomo.html' matomo.zip

そして nginx の conf を変更します

vim /etc/nginx/sites-enabled/default

ただ筆者の癖で sites-enabled でサイトを管理しているだけで、直接 /etc/nginx/nginx.confでやるのも一緒なので、好きな場所で構いません

このようなものを追加します。
セキュリティーなどの設定も色々したため長くなってますが、同じバージョンもmatomoを使っていればおそらく直接コピペでも使えると思います。(server_nameとsslの設定は自分のものに変更してください)

server {
	listen 443 ssl;
	listen [::]:443 ssl;

	server_name <your_server_name>;
	
	access_log /var/log/nginx/matomo.access.log;
	error_log /var/log/nginx/matomo.error.log;

	ssl_certificate </path/to/ssl_certificate>;
	ssl_certificate_key </path/to/ssl_certificate_key>;
	ssl_protocols TLSv1.3;
	ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;

	add_header Referrer-Policy origin always;
	add_header X-Content-Type-Options "nosniff" always;
	add_header X-XSS-Protection "1; mode=block" always;

	root /var/www/matomo; 
	index index.php;

	location ~ ^/(index|matomo|piwik|js/index|plugins/HeatmapSessionRecording/configs)\.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_param HTTP_PROXY "";
		fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
	}

	location ~* ^.+\.php$ {
		deny all;
		return 403;
	}

	location ~ ^/(config|conf|tmp|core|lang) {
		deny all;
		return 403;
	}

	location ~ /\.ht {
		deny all;
		return 403;
	}

	location ~ js/container_.*_preview\.js$ {
		expires off;
		add_header Cache-Control 'private, no-cache, no-store';
	}

	location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2)$ {
		allow all;
		expires 1h;
		add_header Pragma public;
		add_header Cache-Control "public";
	}

	location ~ ^/(libs|vendor|plugins|misc|node_modules) {
		deny all;
		return 403;
	}
}

終わったら保存して、文法に間違いはあるかどうかを確認する

nginx -t

# root じゃない人は
sudo nginx -t

次のコマンドを実行すると web から matomo にアクセスできるようになります。これからの設定はほぼ全て web でマウスだけでできるが、最初の設定が終わるまで誰でもアクセス可能な状態なので、white-listなどを一旦nginxに付けて、設定が全て終わったらwhite-listを解除することをおすすめします。が、筆者のめんどくさがり屋なのでここではやりおりません


問題なければ、先解凍で出てきたmatonoフォルダーを/var/www/に移動して、nginxを再起動しましょう

mv matomo /var/www && service nginx restart

# service cmdない人は
systemctl restart nginx

これで先書いた<your_server_name>をブラウザに打ち込むと matomo web にアクセスできるはずです。できない人はDNSはちゃんと設定されているかどうかなどを確認してみましょう。

で、入ったら指示に従っていれば良いので、筆者だとこのようなページが表示されました

matomo_lecture_01.png

なので、

chown -R www-data:www-data /var/www/matomo

を実行します。

実行したらページをリロードするとこのようなページに入るはずです
matomo_lecture_02.png

次をクリックしたらシステムチェックに入るが、おそらくオールグリーンではないはずです。もしエラーが出たら従って修復しましょう。

nginxとphp-fmpのwarningは無視しておkです。最初のnginx.confの時はすでにセキュリティー設定をしましたからです。

全てクリアしたらさらに次へとクリックしましょう。

matomo_lecture_03.png

このページでdbの設定をしますが、まだmysqlにmatomo専用のユーザー作ってないので一旦ターミナルに戻って操作します

# mysql へログイン
mysql -u root -p

# 入ったらまずなuserを作る、userとpasswordは自分のものに変えてください
> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

# 同じ名前の db を作ります
> CREATE DATABASE newuser;

# 先作ったユーザーに新たに作った db の権限を付与します
> GRANT ALL PRIVILEGES ON newuser.* TO 'newuser'@'localhost';

# リロード
> FLUSH PRIVILEGES;

# 退出
> exit;

そして先作ったユーザーの情報を入れます(サーバーに:3306のポートを追加している、他のポートでやっている人は適切に変えてください)
matomo_lectrure_04.png

全て正常なら自動的にテーブルが作られるはずです。テーブル作成が成功したらさらに次へとクリックしましょう。

で、Super Userを作ってくださいって求められるので、適切に作ってください。スクショがちょっとめんどいので割愛です(

Super User作成の後、最初に追跡するWebページの設定を求められるので、同じく適切に設定しましょう。ない人は次へを押してスキップして大丈夫です。後でまた追加できますので。

さらに次はjsコードの埋め込みについての指示ですが同じくスキップして大丈夫です。後ほど追加します。

おめでとうございます🥳

これでインストールが全て完了です。nginxにwhite-listを設定している場合white-listを解除しても良いでしょう。

これからにアクセスしに行く全ての人がまずsuper userのログインが要求されます、かつ機密ファイルはnginxレベルで全てのアクセスを防いてますので、安心して公開して大丈夫でしょう。まだ心細い場合はこのままwhite-listをonにしても構いません。他の動的セキュリティー措置を追加しても良いでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?