После того, как мы обновили все наши устаревшие серверы Ubuntu 14 до Ubuntu 18, файлы сеанса PHP перестали очищаться. Я не уверен, что это вызвано самим обновлением, но на всех других наших серверах, которые были созданы как Ubuntu 18 или обновлены с Ubuntu 16, все работает должным образом.
Проблема в том, что systemd служба phpsessionclean
не запускается. Вот ошибка, которую он дает мне, одинаковую на всех указанных серверах:
systemd[22064]: phpsessionclean.service: Failed to set up mount namespacing: No such file or directory
systemd[22064]: phpsessionclean.service: Failed at step NAMESPACE spawning /usr/lib/php/sessionclean: No such file or directory
В /usr/lib/php/sessionclean
скрипт определенно существует, и я не вижу ничего необычного в его разрешениях.
Мы на PHP7.2 установлен с использованием подходящий из ppa:ondrej/php
Что я пробовал:
php7.2
, php-common
, php7.2-common
phpsessionclean.service
и phpsessionclean.timer
из systemd и они оба были воссозданы путем переустановки apt, а также вручную скопированы с серверов, на которых они работают нормально/usr/lib/php/sessionclean
сценарийНа данный момент я не знаю, что еще попробовать / где еще посмотреть. Не удалось найти никого, у кого есть похожие проблемы. Но это очень последовательное поведение на всех наших серверах, обновленных с Ubuntu 14.
Удалить systemd
услуги и изменения /etc/cron.d/php
из:
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
... и очистите сеансы с помощью задачи cron (в настоящее время она не очищается, поскольку не выполняется при проверке systemd).
Но мне любопытно узнать, почему установленная служба не запускается. Спасибо!
systemctl редактировать phpsessionclean.service
[Service]
PrivateTmp=false
NoNewPrivileges=yes
ProtectHome=false
ProtectSystem=false