Matomo§
To run the Matomo web analytics platform using Unit:
Install Unit with a PHP language module.
Install and configure Matomo’s prerequisites.
Install Matomo’s core files. Here, we install it at
/path/to/app/
; use a real path in your configuration.Set installation path permissions to secure access, for example:
# chown -R app_user:app_group /path/to/app/
Update the placeholders above with actual values, noting them for later use in Unit configuration.
Next, prepare the app configuration for Unit (use real values for
share
,root
,user
, andgroup
). The default.htaccess
scheme in a Matomo installation roughly translates into the following:{ "listeners": { "*:80": { "pass": "routes/matomo" } }, "routes": { "matomo": [ { "match": { "uri": [ "/index.php", "/js/index.php", "/matomo.php", "/misc/cron/archive.php", "/piwik.php", "/plugins/HeatmapSessionRecording/configs.php" ] }, "action": { "pass": "applications/matomo/direct" } }, { "match": { "uri": [ "*.php", "*/.htaccess", "/config/*", "/core/*", "/lang/*", "/tmp/*" ] }, "action": { "return": 404 } }, { "match": { "uri": "~\\.(css|gif|html?|ico|jpg|js(on)?|png|svg|ttf|woff2?)$" }, "action": { "share": "/path/to/app/" } }, { "match": { "uri": [ "!/libs/*", "!/node_modules/*", "!/plugins/*", "!/vendor/*", "!/misc/cron/*", "!/misc/user/*" ] }, "action": { "share": "/path/to/app/", "fallback": { "pass": "applications/matomo/index" } } } ] }, "applications": { "matomo": { "type": "php", "user": "app_user", "group": "app_group", "targets": { "direct": { "root": "/path/to/app/" }, "index": { "root": "/path/to/app/", "script": "index.php" } } } } }
Upload the updated configuration. Assuming the JSON above was added to
config.json
:# curl -X PUT --data-binary @config.json --unix-socket \ /path/to/control.unit.sock http://localhost/config/
Note
The control socket path may vary; run unitd --help or see Startup and Shutdown for details.
After a successful update, Matomo should be available on the listener’s IP address and port: