, 1 min read
Matomo with Hiawatha
Original post is here eklausmeier.goip.de/blog/2021/06-03-matomo-with-hiawatha.
For this blog I use the Hiawatha web-server. I wanted to employ a web-analysis tool. For this I chose Matomo. Matomo was called Piwik previously. I already use GoAccess on which I have written in Using GoAccess with Hiawatha Web-Server.
To use Matomo with Hiawatha I had to do the following:
- Unzip the matomo.zip file downloaded from Matomo latest
chown -R http:http
the unzipped directory- Edit
index.php
in the matomo directory and addumask(022)
directly after<?
at the top of the file
Editing index.php
will result in below warning, which can be ignored:
Errors below may be due to a partial or failed upload of Matomo files.
--> Try to reupload all the Matomo files in BINARY mode. <--
File size mismatch: /srv/http/matomo/index.php (expected length: 712, found: 724)
Point 3 clearly is non-obvious. First I didn't get any further with the installation of Matomo, as Matomo could not create directories. Even when I tried to chmod
the directories properly, the new directory had wrong permission and no sub-directories could be created. To verifiy that it was indeed a specific Hiawatha problem with umask
I ran:
<html>
<body>
<pre>
<?php
printf("umask() = %o\n", umask());
printf("umask() = %o\n", umask(0));
printf("umask() = %o\n", umask(0));
?>
</pre>
</body>
</html>
This confirmed:
umask() = 117
umask() = 117
umask() = 0
Now the question emerged, from where this silly umask came from. Looking at the source code showed that in hiawatha.c the code indeed sets the umask:
int run_webserver(t_settings *settings) {
. . .
/* Misc settings
*/
tzset();
clearenv();
umask(0117);