Sessions PHP sur LXC et Debian 9

Rédigé par Alexandre le 2018-05-23

#web #debian #travail

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.