Sessions PHP sur LXC et Debian 9
Rédigé par Alexandre le 2018-05-23
En arrivant ce matin, je découvre une alerte sur l'occupation des inodes d'un conteneur LXC. Rapidement je mets le doigts sur le problème : les sessions PHP. Apparemment, depuis que systemd existe, un service est dédié a leur nettoyage automatique. Je cherche alors pourquoi celui-ci ne fonctionne pas et découvre que le service en question est dans l'état failed
(échoué). Un petit tour sur internet me conduit à ce rapport de bug Debian.
Le rapport relate exactement mon problème et il est annoncé comme corrigé à partir de la version 1:60 du paquet php-common
. Malheureusement, le paquet en question n'est disponible que pour testing et unstable. Heureusement, le fix est relativement simple à mettre en place.
Surcharger le service :
systemctl edit phpsessionclean.service
Insérer ce qui suit :
[Service]
PrivateNetwork=false
Recharger les services et démarrer celui qui nous intéresse :
systemctl daemon-reload
systemctl restart phpsessionclean.service
Vérifier que tout fonctionne :
systemctl status phpsessionclean.service
● phpsessionclean.service - Clean php session files
Loaded: loaded (/lib/systemd/system/phpsessionclean.service; static; vendor preset: enabled)
Drop-In: /etc/systemd/system/phpsessionclean.service.d
└─override.conf
Active: inactive (dead) since Wed 2018-05-23 09:25:24 CEST; 3s ago
Process: 15306 ExecStart=/usr/lib/php/sessionclean (code=exited, status=0/SUCCESS)
Main PID: 15306 (code=exited, status=0/SUCCESS)
mai 23 09:25:24 www systemd[1]: Starting Clean php session files...
mai 23 09:25:24 www systemd[1]: Started Clean php session files.
A partir de là, les sessions se nettoieront automatiquement toutes les 30 minutes.