Apache: как удалять старые сессии из кастомной директории

Добрый вечер.

Есть сайт у которого файлы сессий лежат не в директории по умолчанию, а в отдельной директории. Это указанно через .htaccess
php_value session.save_path './../_sessions'
Файлы сохраняются в эту директорию. Только вот беда - старые сессии не удалятся. В конфигар сервера указана длительность жизни сессии 10 мин. Но файлы из этой директории не удаляются. Прав достаточно.

Я подумал, может если кастомная директория, то и удалять самому надо? Но, что то мне подсказывает, что это неправильно.

Подскажите, в чем может быть проблема?
  • Вопрос задан
  • 4308 просмотров
Решения вопроса 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Не поверите, но в обычной директории файлы сессий тоже удаляются "руками" +)

root@master:~# cat /etc/cron.d/php5 
# /etc/cron.d/php5: crontab fragment for php5
#  This purges session files older than X, where X is defined in seconds
#  as the largest value of session.gc_maxlifetime from all your php.ini
#  files, or 24 minutes if not defined.  See /usr/lib/php5/maxlifetime

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete


Я предпочитаю что то такое:
root@host:~# cat /usr/bin/clear_sess.sh 
#!/bin/bash
/usr/bin/find /var/lib/php52 -mmin  +XXX -delete -print
# где XXX - количество минут (правда, у меня в днях mtime).


И в кроне потом запускаю через flock:
flock -n /tmp/clear-sess.lock -c /usr/bin/clear-sess.sh
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Dunadan
@Dunadan
Если есть возможность - лучше перенести хранение сессий в мемкеш.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы