Установка и настройка memcached + настройка для нескольких wordpress

Установка и настройка 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’ ) . ‘:’;

 

Изменить во всех местах файла.

 

Запись опубликована в рубрике Apache, Новости. Добавьте в закладки постоянную ссылку.

Добавить комментарий