Установка и настройка memcached на Centos
Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе парадигмы хеш-таблицы. Иными словами, Memcached это хранилище объектов (строчек, сессий, статических данных) в оперативной памяти сервера используя алгоритм ключ-значение (key-value) основываясь на запросах сервера к базе данных, API, или рендереринга страниц.
В данной статье рассмотрим:
Важно помнить, что вся информация, которую закеширует Memcached будет хранится в памяти до первой перезагрузки службы (сервера).
Установка memcached
Если не подключили репозиторий, подключаем и устанавливаем memcached:
# rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install memcached
Редактируем настройки:
# nano -w /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024" # максимальное количество подключений
CACHESIZE="64" # размер памяти,выделяемой для memcached
OPTIONS="-l 127.0.0.1" # какой слушать интерфейс
Добавляем в автозагрузку и запускаем сервер:
# chkconfig memcached on
# /etc/init.d/memcached start
Настройка PHP для работы с memcached
Установка библиотеки memcached для PHP:
# yum install php-pecl-memcache
Настройка php.ini для хранения сессий в memcached
[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"
Установка и настройка phpMemcachedAdmin
Смотреть статистику можно командой:
# echo stats | nc 127.0.0.1 11211
Или установить систему управления сервисом phpMemcachedAdmin.
Качаем и распаковываем исходники
# mkdir /var/www/memcache
# cd /var/www/memcache
# wget http://phpmemcacheadmin.googlecode.com/files/phpMemcachedAdmin-1.2.2-r262.tar.gz
# tar -xvzf phpMemcachedAdmin-1.2.2-r262.tar.gz
Ограничиваем доступ средствами nginx
Создадим файл с паролем:
# htpasswd -c .htpasswd admin
Затем правило для папки, с ограничением доступа по паролю:
location ~* ^/memcache/.+\.php {
# allow X.X.X.X; // можно так же ограничить доступ по ip
# deny all;
auth_basic "Require authorization";
auth_basic_user_file /var/www/html/memcache/.htpasswd;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
Не забудте закрыть доступ к файлу с паролем:
location ~ /\. {
access_log off;
log_not_found off;
deny all;
}
О том как настроить web-сервер nginx, читайте в статье: Настройка web-сервера nginx, php-fpm на CentOS