Я использую стек LEMP (Nginx, PHP-FPM) на своем сервере Ubuntu для примерно 10 веб-сайтов PHP. Каждый веб-сайт имеет собственный пул php для chroot, пользователя ubuntu, сеансы, журналы и корневую папку.
Недавно у меня возникла проблема с inode файлов сессий php: в общей сложности было собрано около 10 миллионов файлов сессий, и их удаление заняло около 2 часов.
Теперь я хочу переключить обработку сессий с файлов на Memcached настолько плавно, что это не повлияет ни на один веб-сайт. Я имею в виду, что изменение кода не потребуется.
Главный вопрос для меня: если я изменю обработку сеанса по умолчанию с файла на memcached на моем основном php.ini, может ли быть какое-либо столкновение между данными сеанса веб-сайтов? или это опасно? Какие-либо предложения? Мне нужно немного более глубокое объяснение
заранее спасибо
У меня такая же ситуация. 1 сервер memcache для нескольких проектов (веб-сайтов). И да, я храню все сессии в memcache. Чтобы исключить конфликты между проектами (я храню не только сессии в memcache), у каждого проекта есть уникальный «префикс» для доступа к memcache (установить / удалить). Как это выглядит:
<?
class ui { // or whatever
public function __construct() {
$this->memcache = new Memcached;
if (!$this->memcache->addServer("127.0.0.1","1111"))
die('Something wrong.');
$this->memcache_prefix = 'someUniQueForThisProjectString';
}
public function memset($var, $value) {
return $this->memcache->set($this->memcache_prefix.$var, $value);
}
public function memdel($var) {
return $this->memcache->delete($this->memcache_prefix.$var);
}
}
?>
Других решений пока нет …