Я использую HHVM для обслуживания своего PHP-контента и имею memcached
установка экземпляра с целью использования его в качестве обработчика сохранения для сеансов, однако я не уверен, что HHVM действительно его использует.
Вот соответствующая часть /etc/hhvm/php.ini
:
session.save_handler = memcached
session.save_path = /tmp/memcached.sock
memcached.sess_prefix = 'php_'
Заметка; Мне пришлось использовать session.save_handler
значение memcached
скорее, чем memcache
как используется в ванильном PHP. Мне также пришлось установить memcached.sess_prefix
в противном случае я получал ошибки о том, что он пустой.
Однако, если я подключусь к memcached
и запросить его статистику, это не выглядит так, как будто какие-либо сеансы хранятся в memcached
вообще.
Вот статистика попаданий / промахов:
STAT get_hits 15
STAT get_misses 29
В memcached
демон работает непрерывно несколько недель, поэтому эти значения кажутся чрезвычайно низкими. На самом деле я подозреваю, что они, вероятно, были созданы, когда я ненадолго использовал обычную установку PHP перед переключением на hhvm
.
Нет ошибок в /var/log/hhvm/error.log
относящиеся к memcached или сеансам, поэтому, похоже, не происходит сбоя подключения, что говорит о том, что он просто не пытается. Хотя, если это так, я понятия не имею, как хранятся сеансы, поскольку они, похоже, не попадают в /tmp
, но они, похоже, работают (хранит ли HHVM / PHP какие-либо данные сеанса в самой RAM?)
Кажется, все настроено правильно, есть ли что-то еще, что мне нужно изменить?
Похоже, что HHVM просто не поддерживает memcached
, даже если установка обработчика сохранения на "memcached" не приводит к ошибкам или предупреждениям (тогда как memcache
сообщается как нераспознанный).
Это прискорбно, но я обнаружил, что стабильность HHVM оставляет желать лучшего из-за невозможности предварительно скомпилировать все мои скрипты, поэтому я все равно переключился на PHP 7. PHP 7 не имеет memcached
поддержки пока тоже нет, но мы надеемся, что скоро она будет восстановлена.