環境
- Matomo 5.7.1
- PHP-FPM8.3
- Ubuntu 24.04
セルフホストでMatomoを用いている場合のcron処理を行ったときのメモです。
なぜcron処理が必要なのか?
Matomoには、データを処理する2つの方法があります。
- リアルタイム集計(デフォルト): 管理画面を開いた瞬間に、溜まっている生データを計算してグラフを表示します。アクセスが少ないうちは良いですが、アクセスが増えると表示が非常に重くなります。
- cronによる事前集計(推奨): 「5分に1回」などの頻度で、裏側でこっそり計算を済ませておきます。管理画面を開いたときは、計算済みの結果を表示するだけなので、動作が非常にサクサクになります。
さっくりとした手順
- crontabを編集します。
- Matomoの管理画面で設定を行います。
Crontab編集
- crontabを開く
sudo crontab -u www-data -e
Matomoを実行しているユーザー(通常は www-data)として編集します。
- 実行コマンドを追記する
ファイルの末尾に以下の1行を追加します(パスはご自身の環境に合わせて調整してください)。
5 * * * * /usr/bin/php /var/www/html/matomo/console core:archive --url=https://your-matomo-domain.com/ > /dev/null
解説: >
5: 毎時5分に実行するという意味。/usr/bin/php: PHP 8.3の実行パス。core:archive: これが「溜まったデータを集計しろ」というMatomo専用の命令です。
Matomo管理画面での設定変更
cronを設定しただけでは不十分です。Matomo側に「自分で集計するから、画面を開いたときに集計しなくていいよ」と教える必要があります。
- Matomoにログインし、「設定(歯車アイコン)」をクリックします。
- 左メニューの 「システム」 > 「一般設定」 を開きます。
- 「アーカイブの設定」 セクションを確認します。
- 「ブラウザでレポートを表示するときにアーカイブをトリガーする」を 「いいえ」 に変更。
- 下部の「保存」ボタンをクリックします。
注意点
- PHP 8.3のメモリ制限:
- 大規模なデータを集計する場合、CLI(コマンドライン)用の
php.iniでmemory_limitを多めに(512Mや1Gなど)設定しておくと安心です。
- 大規模なデータを集計する場合、CLI(コマンドライン)用の
- ログの確認:
- 最初は
> /dev/nullを書かずに実行して、エラーが出ないか確認することをおすすめします。
- 最初は
その他の設定に関しては改めて述べます。
コメントを残す