Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Matomo/Apache

De AJLSM
Version datée du 20 octobre 2026 à 10:29 par Jlarvers (discussion | contributions)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Configuration Apache pour Matomo

[modifier | modifier le wikicode]

Configurer Apache pour publier une installation Matomo située dans `/var/www/matomo`.

Dans l'infrastructure AJLSM, Matomo peut être accessible :

  • Directement via Apache, avec un certificat HTTPS local.
  • Derrière les répartiteurs HAProxy, qui assurent le HTTPS public et les restrictions d'accès.

La configuration des ACL et des certificats HAProxy est décrite dans Matomo/HAProxy.

  • Matomo installé dans `/var/www/matomo`.
  • Apache 2.4 installé et actif.
  • PHP-FPM installé et configuré.
  • Nom DNS prévu pour Matomo.
  • Base MariaDB configurée.

Voir Matomo/Installation.

2. Création du VirtualHost

[modifier | modifier le wikicode]

Créer le fichier `/etc/apache2/sites-available/matomo.conf`.

<VirtualHost *:80>
    ServerName matomo.exemple.fr
    DocumentRoot /var/www/matomo

    <Directory /var/www/matomo>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/matomo-error.log
    CustomLog ${APACHE_LOG_DIR}/matomo-access.log combined
</VirtualHost>

Remplacer `matomo.exemple.fr` par le nom DNS du projet.

Attention : cet exemple configure uniquement le VirtualHost HTTP. Il ne constitue pas, à lui seul, une publication sécurisée sur Internet.

3. Configuration PHP-FPM

[modifier | modifier le wikicode]

Vérifier que PHP-FPM est actif :

systemctl status php8.4-fpm

Adapter la version de PHP à celle installée sur la VM.

Vérifier les modules Apache :

apache2ctl -M | grep -E 'proxy|fcgi|rewrite'

Si nécessaire :

sudo a2enmod proxy_fcgi setenvif rewrite
sudo a2enconf php8.4-fpm

Important : si plusieurs applications utilisent des versions PHP différentes, ne pas activer automatiquement une configuration PHP-FPM globale. Utiliser le pool et le gestionnaire PHP appropriés au VirtualHost.

4. Activation du VirtualHost

[modifier | modifier le wikicode]
sudo a2ensite matomo.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

Résultat attendu pour `configtest` :

Syntax OK

5. Configuration HTTPS

[modifier | modifier le wikicode]

HTTPS directement sur Apache

[modifier | modifier le wikicode]

Lorsque Matomo est publié directement par Apache, configurer un VirtualHost HTTPS et un certificat valide.

Une installation Certbot peut être utilisée si elle correspond à l'architecture du serveur :

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

HTTPS via HAProxy

[modifier | modifier le wikicode]

Lorsque Matomo est publié derrière HAProxy :

  • Le domaine public pointe vers HAProxy.
  • HAProxy présente le certificat HTTPS public.
  • HAProxy transmet les requêtes au backend Apache.
  • Le backend peut utiliser HTTP ou HTTPS selon la configuration du projet.

Dans le cas d'un backend HTTPS, vérifier le certificat utilisé côté Apache et la configuration de validation TLS du backend HAProxy.

Ne pas installer automatiquement un second certificat public sur Apache si ce n'est pas nécessaire.

Voir Matomo/HAProxy.

6. Protection des fichiers sensibles

[modifier | modifier le wikicode]

Le répertoire Matomo contient des fichiers qui ne doivent pas être accessibles directement depuis le navigateur, notamment les fichiers de configuration.

Vérifier que les règles de protection fournies avec Matomo sont effectivement appliquées par Apache.

La directive suivante autorise Apache à prendre en compte les fichiers `.htaccess` de l'application :

<Directory /var/www/matomo>
    AllowOverride All
    Require all granted
</Directory>

Important : `AllowOverride All` ne remplace pas une vérification effective de la protection des fichiers sensibles.

Les permissions système sont décrites dans Matomo/Installation.

7. Vérifications

[modifier | modifier le wikicode]

Vérifier la configuration Apache

[modifier | modifier le wikicode]
sudo apache2ctl configtest
sudo apache2ctl -S

Vérifier la réponse HTTP

[modifier | modifier le wikicode]
MATOMO_URL="https://matomo.exemple.fr"

curl -sS -o /dev/null -w "HTTP %{http_code}\n" 
    "$MATOMO_URL/matomo.js"

curl -sS -o /dev/null -w "HTTP %{http_code}\n" 
    "$MATOMO_URL/matomo.php"

Les deux points de collecte doivent être accessibles aux visiteurs autorisés à consulter les applications suivies.

Une réponse HTTP 200 sur `matomo.php` ne prouve pas à elle seule qu'une visite a été enregistrée.

Vérifier les journaux

[modifier | modifier le wikicode]
sudo tail -n 50 /var/log/apache2/matomo-error.log
sudo tail -n 50 /var/log/apache2/matomo-access.log

Adapter les chemins si les journaux du projet utilisent d'autres noms.

8. Cas d'une publication sécurisée par HAProxy

[modifier | modifier le wikicode]

Dans les installations AJLSM où l'administration Matomo est réservée à certaines adresses IP :

  • `/matomo.js` doit rester accessible pour le chargement du script de suivi.
  • `/matomo.php` doit rester accessible pour la transmission des statistiques.
  • L'interface Matomo doit être protégée par les ACL HAProxy.
  • Les autres chemins doivent être examinés selon les fonctionnalités utilisées.

La restriction par IP de l'interface ne remplace pas l'authentification propre à Matomo.

La procédure de configuration et de déploiement Ansible est détaillée dans Matomo/HAProxy.

En cas de dysfonctionnement, vérifier successivement :

  1. La résolution DNS.
  2. La validité du certificat HTTPS.
  3. Le routage HAProxy, si utilisé.
  4. La configuration du VirtualHost Apache.
  5. Le fonctionnement de PHP-FPM.
  6. Les permissions de `/var/www/matomo`.
  7. La connexion à MariaDB.
  8. Les journaux Apache et PHP-FPM.

Voir Matomo/Debug.