open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Host

Matomo auf Debian 13 installieren – vollständige Schritt-für-Schritt-Anleitung

Autor
Matomo auf Debian 13 installieren – vollständige Schritt-für-Schritt-Anleitung

1. Einleitung & Vorbereitung

Matomo (früher Piwik) ist eine Open-Source Web-Analyseplattform, mit der du vollständig die Kontrolle über deine Daten behältst (On-Premise). ([Analytics Platform - Matomo][1])

Bevor du mit der Installation beginnst, solltest du sicherstellen, dass dein Server die grundlegenden Anforderungen erfüllt und du Zugang mit ausreichenden Rechten (idealerweise root oder sudo) hast.

1.1 Systemanforderungen & Abhängigkeiten

Laut offizieller Dokumentation benötigt Matomo:

  • Einen Webserver (Apache, Nginx, etc.) ([Analytics Platform - Matomo][2])
  • PHP-Version mindestens 7.2.5 (oder PHP 8.x wird empfohlen) ([Analytics Platform - Matomo][2])
  • MySQL oder MariaDB (Version ≥ 5.5) ([Analytics Platform - Matomo][2])
  • PHP-Erweiterungen wie pdo, pdo_mysql oder mysqli ([Analytics Platform - Matomo][2])
  • Weitere PHP-Module, z. B. php-curl, php-gd, php-mbstring, php-xml, php-zip (für einige Funktionen wie Berichte und Graphen) ([Analytics Platform - Matomo][2])

Darüber hinaus empfiehlt Matomo für mittleren bis hohen Traffic automatisches Archivieren der Reports via Cron (um die Performance zu verbessern). ([Analytics Platform - Matomo][3])

2. Schritt-für-Schritt-Anleitung: Matomo auf Debian 13 installieren

Ich zeige dir hier eine typische Variante mit dem LAMP-Stack (Apache, MariaDB, PHP). Du kannst natürlich auch Nginx nutzen, wenn du das bevorzugst — die Konfiguration unterscheidet sich dann etwas.

2.1 Systempakete updaten & LAMP-Grundlage packen

  1. Zunächst das System aktualisieren:

    sudo apt update
    sudo apt upgrade -y
    
  2. Installation der benötigten Pakete (Apache, MariaDB, PHP und Erweiterungen):

    sudo apt install -y apache2 mariadb-server \
     php php-cli libapache2-mod-php \
     php-mysql php-curl php-gd php-mbstring php-xml php-zip wget unzip
    

    (Falls eine neuere PHP-Version in Debian 13 verfügbar ist, kannst du diese verwenden.)

  3. Sicherstellen, dass Apache und MariaDB starten und aktiviert sind:

    sudo systemctl enable --now apache2
    sudo systemctl enable --now mariadb
    
  4. (Optional, aber empfehlenswert) MariaDB sichern:

    sudo mysql_secure_installation
    

    Hier kannst du z. B. root-Passwort setzen, anonyme Accounts deaktivieren, Testdatenbank entfernen usw.

2.2 Datenbank & Benutzer anlegen

Matomo benötigt eine eigene Datenbank und einen Benutzer mit ausreichenden Rechten:

sudo mysql -u root -p

Innerhalb der MySQL/MariaDB-Shell:

CREATE DATABASE matomo_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'matomo_user'@'localhost' IDENTIFIED BY 'SicheresPasswortHier';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, 
      CREATE TEMPORARY TABLES, LOCK TABLES ON matomo_db.* 
      TO 'matomo_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Wichtig: Der Benutzer braucht Rechte wie CREATE, ALTER, INDEX, DROP, LOCK TABLES etc. ([Analytics Platform - Matomo][2])

2.3 Herunterladen & Entpacken von Matomo

Wechsle ins Web-Verzeichnis und lade Matomo herunter:

cd /var/www/
sudo wget https://builds.matomo.org/matomo.zip
sudo unzip matomo.zip
sudo rm matomo.zip

Dadurch wird ein Verzeichnis /var/www/matomo erstellt.

2.4 Dateirechte & Eigentümer setzen

Damit der Webserver korrekt auf Dateien zugreifen und nötige Dateien beschreiben kann:

sudo chown -R www-data:www-data /var/www/matomo
sudo find /var/www/matomo -type d -exec chmod 750 {} \;
sudo find /var/www/matomo -type f -exec chmod 640 {} \;

Diese Rechte sorgen dafür, dass Verzeichnisse ausführbar/lesbar und Dateien nur lesbar sind (außer wo notwendig) — das ist bessere Sicherheitspraxis.

2.5 Konfiguration von Apache (VirtualHost)

Erstelle eine neue Apache-Konfigurationsdatei, z. B.:

sudo nano /etc/apache2/sites-available/matomo.conf

Ein Beispielinhalt:

<VirtualHost *:80>
    ServerName analytics.deine-domain.tld
    ServerAlias www.analytics.deine-domain.tld
    DocumentRoot /var/www/matomo

    <Directory /var/www/matomo>
        DirectoryIndex index.php
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    <Files "console">
        Require all denied
    </Files>

    <Directory /var/www/matomo/misc/user>
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
    CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined
</VirtualHost>

Ein paar Hinweise:

  • AllowOverride All erlaubt .htaccess-Dateien, wichtig für manche Matomo-Funktionen.
  • Die Direktive <Files "console"> schränkt den Zugriff auf das Matomo-Konsolen-Skript ein.
  • Achte darauf, ServerName und ggf. ServerAlias durch deine Domain zu ersetzen.

Aktiviere diese Konfiguration und deaktiviere ggf. die Standardseite:

sudo a2dissite 000-default.conf
sudo a2ensite matomo.conf

Aktiviere das Apache-Modul rewrite, falls noch nicht aktiv:

sudo a2enmod rewrite

Dann Apache neu starten:

sudo systemctl restart apache2

2.6 SSL (Let’s Encrypt) einrichten

Um HTTPS zu ermöglichen, kannst du Let’s Encrypt verwenden:

  1. Installiere snapd, falls noch nicht vorhanden:

    sudo apt install snapd
    sudo snap install core
    sudo snap refresh core
    
  2. Installiere Certbot:

    sudo snap install --classic certbot
    sudo ln -s /snap/bin/certbot /usr/bin/certbot
    
  3. Führe Certbot mit Apache-Plugin aus:

    sudo certbot --apache
    

    Folge den Anweisungen, um ein Zertifikat für analytics.deine-domain.tld zu erhalten und automatisch HTTPS zu konfigurieren.

Alternativ kannst du auch die Webroot- oder andere Methoden nutzen, je nach Setup.

2.7 Web-Installer ausführen

Jetzt rufst du deine Domain (z. B. https://analytics.deine-domain.tld) im Browser auf. Der Matomo-Installer führt dich durch folgende Schritte:

  1. Willkommensseite / Systemprüfung – Matomo prüft, ob alle Anforderungen erfüllt sind.
  2. Datenbankverbindung – hier gibst du matomo_db, matomo_user und dein Passwort ein.
  3. Superuser-Konto anlegen – Name, E-Mail, Passwort
  4. Erste Website hinzufügen – Domain, Name, Zeitzone
  5. Tracking-Code einfügen – du bekommst JS-Code, den du auf den zu trackenden Seiten einfügst

Wenn alles erfolgreich ist, ist Matomo installiert und einsatzbereit. ([Analytics Platform - Matomo][3])

2.8 Cronjob / automatisches Archivieren

Damit Matomo nicht bei jedem Besuch alle Reports neu berechnet (was bei größerem Traffic sehr langsam wird), solltest du ein Cron-Skript einrichten, das regelmäßig die Archivierung übernimmt. ([Analytics Platform - Matomo][3])

Beispiel (möglich in /etc/cron.d/matomo) :

*/5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://analytics.deine-domain.tld > /dev/null

Dieser Job führt alle 5 Minuten das Archivieren durch. Passe gegebenenfalls die Häufigkeit an deine Last an.

3. Sicherheit & Performance-Tipps

Damit dein Matomo-Setup robust und performant bleibt, hier einige Empfehlungen:

  • Regelmäßige Backups: sowohl der Datenbank als auch des Dateiordners matomo/.
  • Updates einspielen: Halte Matomo, Plugins und das System aktuell.
  • HTTPS erzwingen (Redirect von HTTP zu HTTPS).
  • IP-Zugriff einschränken auf das Admin-Interface oder Whitelists, wenn möglich.
  • Firewall verwenden (z. B. ufw), nur Ports 80/443 offen.
  • PHP-Einstellungen optimieren, z. B. memory_limit, max_execution_time.
  • Caching aktivieren (z. B. OPcache), Nutzung von CDN oder Reverse Proxy bei hohem Traffic.
  • Logs analysieren (Slow Queries, Apache Logs) und ggf. Datenbankoptimierung durchführen.
  • Matomo-Systemdiagnose verwenden, um Warnungen oder fehlende Erweiterungen zu erkennen.

4. Mögliche Stolperfallen & Troubleshooting

Problem Mögliche Ursache / Lösung
Systemprüfung im Installer schlägt fehl Fehlende PHP-Erweiterungen oder falsche Rechte / Ownership
Datenbankverbindung nicht möglich Falsche Zugangsdaten, Benutzerrechte, Firewall blockiert
Keine Reports sichtbar / sehr langsam Cronjob nicht eingerichtet, Archivierung nicht erfolgen
Fehlermeldungen bei Plugins / Updates unvollständige Schreibrechte oder inkompatible PHP-Version
HTTPS / Zertifikatfehler DNS noch nicht propagiert, Zertifikat fehlgeschlagen, Konfigurationsfehler in Apache

Wenn du auf eine konkrete Fehlermeldung stößt, sag mir gern Bescheid — ich helfe dir beim Debuggen.

5. Zusammenfassung & Ausblick

In diesem Artikel habe ich dir gezeigt, wie du Matomo auf einem Debian 13-Server installierst – von der Vorbereitung über Datenbank, Webserver- und SSL-Konfiguration bis zur Inbetriebnahme und Performanceoptimierung.