Чистим файлы сессий php в ubuntu

При возникновении такой ошибки на сайте: /var/lib/php5/sess_17100983f14cfa492864245288ba6640, O_RDWR) failed: No space left on device (28)

Дело может быть в том что закончились все инноды на вашем линукс сервере. Посмотреть можно в консоли так: df -i

А причиной могут быть сессии php, которые накопились и почему то сборщик мусора их не удаляет. Вручную можно попробовать удалить из через консоль

cd /var/lib/php5
find . -name "sess_*" -print | xargs rm -v

Как только в консоли движения не наблюдается(типа зависла) нажимаем Cntl-z и снова запускаем поиск и удаление до тех пор пока все не удалится!

 

Если терминал показывает ошибку : rm: cannot remove имя файла: Operation not permitted

то надо отменить команду cntrl-z, затем сменить права на файлы сессий командой:

sudo chmod -R 777 /var/lib/php5

После того как команда отработает, т.е. права на файлы поменяются, повторяем действия описанные выше.

А теперь правильное решение данной проблемы:

Нужно настроить удаление старых сессий php в автоматическом режиме!

  1. Заходим в php.ini (файл конфиг для php)
  2. Правим следующие параметры php:
session.gc_probability = 1
session.gc_divisor     = 100
session.gc_maxlifetime = 43200

3. Перезагружаем сервер

После данных настроек, сессии которым более 12 часов от роду автоматически будут чиститься сборщиком мусора php!

 

 

Добавить комментарий