RAKUIN

Blog / code /
matomo(アクセス解析)の設定

hero-matomo

2021/07/21 追記

検索エンジンからの検索キーワードが確認できない(「キーワードは定義されていません」と表示される)ので、Google Analytics に戻すことにしました。検索キーワードはさすがに見たい… 一応見れるようにもできるらしいけど、Search Engine Keywords Performance というプラグインを入れてね!年間149ドルだけどな!とのことでしたので、そっとページを閉じて削除することにしました。Google 先生、浮気してごめんなさい…

あと、何だか分からないけど管理画面で表示エラーが多発してたのも地味にストレス。良さそうだったのになぁ…


当サイトは現在(2021/07/20)、アクセス解析に Google Analytics ではなく matomo というツールを導入しています。Google ほどの高機能を求めない人にとっては良さそうな選択肢なんですよね。まだ入れたばっかりなので分かりませんが。

で、その導入・設定の記録です。と言ってもインストール方法は簡単&あちこちで紹介されているので、「matomo インストール」あたりで検索して済ませてください。ここではポイント・ネックになるであろう点のみご紹介。

matomo 導入のポイント

  1. 自分のアクセスを除外する
  2. 強制的に SSL 接続にする
  3. 最大パケットサイズを変更する
  4. crontab でレポートを自動アーカイブさせる

1. 自分のアクセスを除外する

これはめちゃくちゃ簡単で、設定>個人用>設定 の一番下、自分自身のビジットを除外( Cookie 使用 )をクリックするだけで完了。

2. 強制的に SSL 接続にする

これはほんの少しだけ難易度UP。でも config/config.ini.php をエディタで開き、上の方にある [General] という部分に force_ssl = 1 という1行を追記すればOK。

; <?php exit; ?> DO NOT REMOVE THIS LINE
; file automatically generated or modified by Matomo; you can manually override the default values in global.ini.php by redefining them in this file.
[database]
host = "your.mysql.host.add.ress"
username = "yourname"
password = "password"
dbname = "dbname"
tables_prefix = "matomo_"
charset = "utf8mb4"

[General]
force_ssl = 1
salt = "xxxxxx"
trusted_hosts[] = "your.host"

[PluginsInstalled]
...

3. 最大パケットサイズを変更する

これは普通のレンタルサーバーではできない設定かもしれません。phpmyadmin とかでも値を確認できますが、変更には super 権限が必要になります。かくいう私も普通のレンタルサーバーなので無理でした。問題ある状態で終わるのが気に入らぬ…

できる場合は phpmyadmin などで max_allowed_packet の値を 64MB 以上に設定すれば良さそうです。知らんけど。

4. crontab でレポートを自動アーカイブさせる

これが一番面倒で抵抗がある作業かも。

matomo はデフォルトだとブラウザでの表示をトリガーに、これまでのレポートをアーカイブ処理してるんだそうです。これが負荷になるので、可能ならその処理はサーバーに cron で任せちゃおう!ってことですね。さくらのサーバーの場合は cron 設定がコンパネからできて便利な反面、設定に少し注意が必要でした。

手順

  1. サーバーで cron を設定する
  2. matomo の 設定>システム>一般設定 で「アーカイブする」を「いいえ」にし、アーカイブする秒を「3600」にして保存する
    matomo一般設定画面
  3. 診断メニューなどで動作確認し、問題なければ完了

マニュアル

cron で実行するコマンドの例(マニュアル通り版)

/usr/local/bin/php /home/アカウント名/matomo/console core:archive --url=https://example.org/matomo/ > /home/アカウント名/ログ保存ディレクトリ/matomo-archive.log

cron で実行するコマンドの例(さくらのレンタルサーバ版)

cd /home/アカウント名/matomo/ ; /usr/local/bin/php console core:archive --url=https://example.org/matomo/ > /home/アカウント名/ログ保存ディレクトリ/matomo-archive.log

一つずつ解説

  1. cd /home/アカウント名/matomo/ ;
    console ファイルがあるディレクトリまでのパスを指定します。さくらの仕様で、cd でまず移動させるようですね。URL ではなくサーバーのホームディレクトリを指定する点に注意。
  2. /usr/local/bin/php
    サーバーの php までのパス。さくらの場合は /usr/local/bin/php
  3. console core:archive
    1 ですでに移動しているので、ここではパス指定は不要。
  4. --url=https://example.org/matomo/ >
    matomo にアクセスするためのURL
  5. /home/アカウント名/ログ保存ディレクトリ/matomo-archive.log
    ログファイルの保存場所。これもサーバーのホームディレクトリで指定します。ログ保存ディレクトリの名前は自由ですが、場所はウェブでアクセスできない場所を指定しておきましょう。

おわりに

cron だけややこしいですかね。支障なければ手順1, 2 だけやっておけばいいようにも思います。あとは肌に合うかどうか。ちょいちょい弄ろう。