Après avoir mis à jour tous nos anciens serveurs Ubuntu 14 vers Ubuntu 18, les fichiers de session PHP ont cessé d'être nettoyés. Je ne suis pas sûr que cela soit causé par la mise à niveau elle-même, mais tous nos autres serveurs qui ont été créés sous Ubuntu 18, ou mis à niveau depuis Ubuntu 16, fonctionnent comme prévu.
Le problème est que le service systemd phpsessionclean
ne parvient pas à s'exécuter. Voici l'erreur qu'il me donne, la même sur tous les serveurs mentionnés :
systemd[22064] : phpsessionclean.service : Échec de la configuration de l'espacement de nom de montage : Aucun fichier ou dossier de ce type
systemd[22064] : phpsessionclean.service : Échec à l'étape NAMESPACE en train de lancer /usr/lib/php/sessionclean : Aucun fichier ou dossier de ce type
Le script /usr/lib/php/sessionclean
existe certainement et je ne remarque rien d'inhabituel concernant ses autorisations.
Nous utilisons PHP7.2 installé à l'aide de apt à partir de ppa:ondrej/php
Les choses que j'ai essayées :
- Réinstallation forcée de
php7.2
,php-common
,php7.2-common
- Désactivation et suppression de
phpsessionclean.service
etphpsessionclean.timer
de systemd et leur recréation lors des réinstallations apt ainsi que leur copie manuelle depuis les serveurs où ils fonctionnent correctement - Suppression et réinstallation du script
/usr/lib/php/sessionclean
À ce stade, je ne sais pas quoi d'autre essayer / où chercher. Je n'ai pas pu trouver quelqu'un ayant des problèmes similaires. Mais le comportement est très cohérent sur tous nos serveurs mis à niveau depuis Ubuntu 14.
Solution de contournement que je considère :
Supprimer les services systemd
et changer /etc/cron.d/php
de :
09,39 * * * * root [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi
à :
09,39 * * * * root if [ -x /usr/lib/php/sessionclean ]; then /usr/lib/php/sessionclean; fi
... et nettoyer les sessions avec une tâche cron (actuellement non effectuée car elle échoue lors de la vérification de systemd).
Mais je suis curieux de savoir pourquoi le service installé ne s'exécute pas. Merci!