Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« Matomo/Apache » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
= Configuration Apache = | = Configuration Apache pour Matomo = | ||
== Objectif == | |||
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]]. | |||
== 1. Prérequis == | |||
* 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 == | |||
Créer le fichier `/etc/apache2/sites-available/matomo.conf`. | |||
=== Exemple HTTP === | |||
<syntaxhighlight lang="apache"> | <syntaxhighlight lang="apache"> | ||
<VirtualHost *:80> | <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> | </VirtualHost> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Activation == | 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 == | |||
Vérifier que PHP-FPM est actif : | |||
<syntaxhighlight lang="bash"> | |||
systemctl status php8.4-fpm | |||
</syntaxhighlight> | |||
Adapter la version de PHP à celle installée sur la VM. | |||
Vérifier les modules Apache : | |||
<syntaxhighlight lang="bash"> | |||
apache2ctl -M | grep -E 'proxy|fcgi|rewrite' | |||
</syntaxhighlight> | |||
Si nécessaire : | |||
<syntaxhighlight lang="bash"> | |||
sudo a2enmod proxy_fcgi setenvif rewrite | |||
sudo a2enconf php8.4-fpm | |||
</syntaxhighlight> | |||
'''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 == | |||
<syntaxhighlight lang="bash"> | |||
sudo a2ensite matomo.conf | |||
sudo apache2ctl configtest | |||
sudo systemctl reload apache2 | |||
</syntaxhighlight> | |||
Résultat attendu pour `configtest` : | |||
<syntaxhighlight lang="text"> | |||
Syntax OK | |||
</syntaxhighlight> | |||
== 5. Configuration HTTPS == | |||
=== HTTPS directement sur Apache === | |||
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 : | |||
<syntaxhighlight lang="bash"> | |||
sudo apt install certbot python3-certbot-apache | |||
sudo certbot --apache | |||
</syntaxhighlight> | |||
=== HTTPS via HAProxy === | |||
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 == | |||
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 : | |||
<syntaxhighlight lang="apache"> | |||
<Directory /var/www/matomo> | |||
AllowOverride All | |||
Require all granted | |||
</Directory> | |||
</syntaxhighlight> | |||
'''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 == | |||
=== Vérifier la configuration Apache === | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apache2ctl configtest | |||
sudo apache2ctl -S | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Vérifier la réponse HTTP === | |||
<syntaxhighlight lang="bash"> | |||
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" | |||
</syntaxhighlight> | |||
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 === | |||
<syntaxhighlight lang="bash"> | |||
sudo tail -n 50 /var/log/apache2/matomo-error.log | |||
sudo tail -n 50 /var/log/apache2/matomo-access.log | |||
</syntaxhighlight> | |||
Adapter les chemins si les journaux du projet utilisent d'autres noms. | |||
== 8. Cas d'une publication sécurisée par HAProxy == | |||
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]]. | |||
== 9. Diagnostic == | |||
En cas de dysfonctionnement, vérifier successivement : | |||
# La résolution DNS. | |||
# La validité du certificat HTTPS. | |||
# Le routage HAProxy, si utilisé. | |||
# La configuration du VirtualHost Apache. | |||
# Le fonctionnement de PHP-FPM. | |||
# Les permissions de `/var/www/matomo`. | |||
# La connexion à MariaDB. | |||
# Les journaux Apache et PHP-FPM. | |||
Voir [[Matomo/Debug]]. | |||
Dernière version du 20 octobre 2026 à 10:29
Configuration Apache pour Matomo
[modifier | modifier le wikicode]Objectif
[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.
1. Prérequis
[modifier | modifier le wikicode]- 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`.
Exemple HTTP
[modifier | modifier le wikicode]<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.
9. Diagnostic
[modifier | modifier le wikicode]En cas de dysfonctionnement, vérifier successivement :
- La résolution DNS.
- La validité du certificat HTTPS.
- Le routage HAProxy, si utilisé.
- La configuration du VirtualHost Apache.
- Le fonctionnement de PHP-FPM.
- Les permissions de `/var/www/matomo`.
- La connexion à MariaDB.
- Les journaux Apache et PHP-FPM.
Voir Matomo/Debug.