После того, как мы обновили все наши устаревшие серверы 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 с использованием apt из 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
] from:
09,39 * * * * root [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi
to:
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