Установка и настройка memcached на Centos
1.Подключение репозитариев, если они еще не подключены
Либо RPMForge
i386
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
x86_64
rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
Установка ключа
rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
Либо EPEL-
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
2.Установка memcached
yum install memcached
3.Настройка,запуск,постановка в автозагрузка
nano /etc/sysconfig/memcached
PORT=»11211″
USER=»memcached»
MAXCONN=»1024″ # максимальное количество подключений
CACHESIZE=»64″ # размер памяти,выделяемой для memcached
OPTIONS=»-l 127.0.0.1″ #интрфейс,на котором слушать запросы(по умолчанию стоит сдушать на всех интерфейсах OPTIONS=»»
/etc/init.d/memcached start
chkconfig —level 2345 memcached on
Проверка запуска
[root@guk5 ~]# netstat -nlp | grep memcached
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 3782/memcached
udp 0 0 127.0.0.1:11211 0.0.0.0:* 3782/memcached
[root@guk5 ~]# ps ax | grep memcached
3782 ? Ssl 0:00 memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid -l 127.0.0.1
3851 pts/1 S+ 0:00 grep memcached
Просмотр статистики
memcached-tool 127.0.0.1 stats
watch -d -n 1 «echo «stats» | nc localhost 11211″
Просмотр использования памяти Memcached
memcached-tool 127.0.0.1 display
Просмотр содержимого кеша
memcached-tool 127.0.0.1 dump | less
2.Установка библиотеки Memcached для PHP
yum install php-pecl-memcache
рестарт apache
/etc/init.d/httpd restart
Проверка работоспособности
php -i |grep memcache
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 32768 => 32768
memcache.compress_threshold => 20000 => 20000
memcache.default_port => 11211 => 11211
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => consistent => consistent
memcache.lock_timeout => 15 => 15
memcache.max_failover_attempts => 20 => 20
memcache.protocol => ascii => ascii
memcache.redundancy => 1 => 1
memcache.session_redundancy => 2 => 2
Registered save handlers => files user memcache
3.Настройка хранения php-сессий в memcached
Глобально для всех сайтов, размещенных на сервере
nano /etc/php.ini
;session.save_handler = files
session.save_handler = memcache
;session.save_path = «/var/lib/php/session»
session.save_path = «127.0.0.1:11211»
/etc/init.d/httpd reload
Если используется удаленный Memcached сервер
session.save_handler = memcache
session.save_path = «tcp://192.168.1.82:11211″
Если используется несколько Memcached серверов для хранения сессий
session.save_handler = memcache
session.save_path=»tcp:// 192.168.1.82:11211, tcp://192.168.1.82:11211″
Memcached также позволяет передавать параметры при конфигурации сессий
session.save_handler = memcache
session.save_path=»tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15»
Как альтернативу, можно использовать хранение php-сессий в memcached только для конкретных сайтов
В файл .htaccess в корне сайта добавляем
php_value session.save_handler memcache
php_value session.save_path 127.0.0.1:11211
Теперь включаем поддержку memcached в wordpress.
Само собой, php должен быть собран с поддержкой memcached –enable-memcache[=DIR].
Скачиваем memcached plugin for wordpress. Можно воспользоватся встроенным установщиком плагинов.
Копируем object-cache.php и memcached-client.php в папку wp-content (не в папку для плагинов)
Настройка memcached почти готова, теперь нужно указать $memcached_servers в wp-config.php. Это массив из айпи:порт. По умолчанию коннектится на 11211 порт на localhost.
Пример конфига memcached:
$memcached_servers = array(‘192.168.1.1:11211’, ‘192.168.1.2:11211’);
Если сайтов wordpress несколько нужно в файле object-cache.php
изменить строчку
$this->blog_prefix = ( is_multisite() ? $blog_id : $table_prefix ) . ‘:’;
на
$this->blog_prefix = ( is_multisite() ? $blog_id : ‘site.ru’ ) . ‘:’;
Изменить во всех местах файла.