2014-10-12 3 views
1

Я использую стек LEMP (Nginx, PHP-FPM) на моем сервере Ubuntu для примерно 10 веб-сайтов PHP. На каждом веб-сайте есть собственный chpot'ed php-пул, пользователь ubuntu, сеансы, журналы и корневая папка.Использование memcached для нескольких проектов

Недавно у меня возникла проблема с inode файла php session: всего было собрано около 10 миллионов файлов сеансов, и для их удаления потребовалось около 2 часов.

Теперь я хочу, чтобы переключить обработку сеанса из файла на основе Memcached так гладко, что это не повлияет на какой-либо веб-сайт. Я имею в виду, что изменение кода не потребуется.

Главный вопрос для меня: если я изменяю обработку сеанса по умолчанию из файла на memcached на моем основном php.ini, может быть какое-либо столкновение между данными сеанса сайтов? или это опасно? Какие-либо предложения? Мне нужно немного более глубокое объяснение

Спасибо заранее

ответ

0

У меня такая же ситуация. 1 сервер memcache для нескольких проектов (веб-сайтов). И да, я храню все сессии в memcache. Чтобы исключить конфликты между проектами (я храню не только сеансы в memcache), каждый проект имеет уникальный «префикс» для доступа к memcache (set/delete). Как выглядит:

<? 
    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); 
    } 
    } 
?> 
Смежные вопросы