2.8.15. Обробник зберігання сесії
Зберігання сесій у Memcache(d) або Redis може деякою мірою прискорити роботу сайту за рахунок того, що дані зберігатимуться не на диску, а в оперативній пам’яті, де швидкість доступу до даних вища.
За обробник зберігання сесії відповідає параметр session.save_handler. Він визначає ім’я обробника, який використовується для зберігання та вилучення даних, пов’язаних з сесією.
Зміна
- Відкрийте «Налаштування PHP».
- У полі «session.save_handler» виберіть потрібний обробник та збережіть зміни:
- «зберігання сесій в файлах» — сесії зберігатимуться у файлах у стандартному системному каталозі (значення за замовчуванням).
- «зберігання сесій в Memcache» — сесії зберігатимуться в кеші в оперативній пам’яті (доступно за наявності замовленої додаткової послуги Memcache(d) або на тарифах бізнес-хостингу).
- «зберігання сесій в Redis» — сесії зберігатимуться в кеші в оперативній пам’яті (доступно за наявності замовленої додаткової послуги Redis або на тарифах бізнес-хостингу).
- Зачекайте приблизно 10-15 хвилин, поки зміни вступлять в силу.
Можливі проблеми
При зберіганні сесій у Memcache або Redis у коді сайту не повинно бути команд session_save_path('/tmp')
та ini_set('session.save_path', '/tmp')
, які перевизначають шлях зберігання сесій, або в них замість /tmp
повинен бути шлях до сокету зі сторінки відповідної додаткової послуги.
Якщо шлях зберігання сесій вказано неправильно, на сайті будуть такі помилки:
- У старих версіях PHP:
PHP Fatal error: session_start() [function.session-start]: Failed to initialize storage module: memcache (path: /tmp)
- У нових версіях PHP:
Warning: session_start(): Failed to write session lock: CONNECTION FAILURE Warning: session_start(): Failed to write session lock: SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY Warning: session_start(): Unable to clear session lock record Warning: session_start(): Failed to read session data: memcached (path: /tmp)