Как установить Memcached в Centos\RHEL

Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе парадигмы хеш-таблицы. Иными словами, Memcached это хранилище объектов (строчек, сессий, статических данных) в оперативной памяти сервера используя алгоритм ключ-значение (key-value) основываясь на запросах сервера к базе данных, API, или рендереринга страниц. Т.е. Memcached хранит наиболее популярные запросы к базе данных в оперативной памяти и когда сервер обращается за этими запросами, Memcached их быстро выдает, тем самым не задействуя базу данных, и экономя время ответа сервера, так как запрос к базе данных это дело долгое и муторное, к тому же многие сервера до сих пор используют HDD, а не SSD что очень замедляет работу.

Установка Memcached в Centos

Почему стоит хранить PHP сессию в Memcached, а не в файлах? Ответ прост, потому что обращения к файлам на жестком диске на порядок медленне, чем обращение к оперативной памяти. Но стоит помнить, что вся информация, которую закеширует Memcached будет хранится в памяти до первого ребута.

Для установки Memcached нужно не забыть подключить EPEL репозиторий.

rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update
rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update

Теперь когда репозиторий подключ в систему, можно ставить пакет Memcached:

yum install memcached
yum install memcached

После установки, необходимо выполнить минимальную конфигурацию:

vi /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
vi /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

Где меняем строчку OPTIONS=””:

OPTIONS="-l 127.0.0.1"
OPTIONS="-l 127.0.0.1"

Запускаем:

/etc/init.d/memcached start
chkconfig --levels 235 memcached on
/etc/init.d/memcached start
chkconfig --levels 235 memcached on

Устанавлиаем Memcached PHP Extension

Ставим Инструменты разработчика и Extension:

yum groupinstall "Development Tools"
yum install zlib-devel libmemcached-devel php-pear php-pecl-memcached php-devel
yum groupinstall "Development Tools"
yum install zlib-devel libmemcached-devel php-pear php-pecl-memcached php-devel

Далее с помощью Pecl ставим модуль:

pecl install -f memcached-1.0.0
pecl install -f memcached-1.0.0

Настройка PHP.ini для работы с Memcached

Открываем php.ini:

vi /etc/php.ini
vi /etc/php.ini

В php.ini ищем раздел [Session] и делаем его таким:

[Session]
; Handler used to store/retrieve data.
; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
[Session]
; Handler used to store/retrieve data.
; http://www.php.net/manual/en/session.configuration.php#ini.session.save-handler
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"

Рестаруем Apache:

service httpd restart
service httpd restart

Установка phpMemcachedAdmin на сервер:

Делаем папку куда будет смотреть виртуальны хост:

mkdir -p /var/www/html/memcached/
cd /var/www/html/memcached/
mkdir -p /var/www/html/memcached/
cd /var/www/html/memcached/

Качаем пакет:

http://blog.elijaa.org/index.php?pages/phpMemcachedAdmin-Download-Version-1.2.2
tar -xvzf phpMemcachedAdmin-1.2.2-r262.tar.gz
chmod +rx *
chmod 0777 Config/Memcache.php
chmod 0777 Temp/
http://blog.elijaa.org/index.php?pages/phpMemcachedAdmin-Download-Version-1.2.2
tar -xvzf phpMemcachedAdmin-1.2.2-r262.tar.gz
chmod +rx *
chmod 0777 Config/Memcache.php
chmod 0777 Temp/

Создаем файл VHOST и настраиваем:

vim /etc/httpd/conf.d/memcached.conf
Alias /memcache /var/www/html/memcached
<directory /var/www/html/memcached>
    Options -Indexes
    AllowOverride All
</directory>
vim /etc/httpd/conf.d/memcached.conf
Alias /memcache /var/www/html/memcached
<directory /var/www/html/memcached>
    Options -Indexes
    AllowOverride All
</directory>

Рестаруем Apache:

service httpd restart
service httpd restart

И идем по адресу http://younameserver/memcache

Selection_005

Что-бы WordPress заработал с memcached, необходимо установить специальный плагин.