Memcached: установка и настройка

Данная статья носит характер «Скорой помощи». Развернутое описание конкретных действий, которые позволять установить и настроить memcached на сервере.

Начнем с определения.

Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы.

Начальные данные:

  • VPS, работающий на операционной системе Debian;
  • действующий сайт, к которому можно обратиться по FTP, SSH.

Начнем с последнего пункта. За счет запущенного интернет-ресурса (или его подобия) мы можем просто и быстро выяснить что у нас установлено (быть может, что среди прочего мы найдем и memcached). Создадим файл с названием info.php, в котором напишем:

<?php phpinfo(); ?>

Выполним код, обратившись в по адресу http://example.com/info.php:

Если среди всего прочего вы отыскали похожую запись — значит все в порядке и дело уже сделано. В противном случае — этот результат мы получим по итогам действий, описанных в данной публикации.

Установка сервера Memcached

Запустим установку командой

apt-get install memcached php5-memcache

Ожидаем завершения установки. После проверим результаты командой netstat

netstat -tap | grep memcached

В результате получаем:

tcp  0 0 *:11211 *:*   LISTEN  13053/memcached

Как мы видим, по умолчанию memcached по-умолчанию «слушает» порт 11211. Следовательно, через данный порт любой желающий сможет подключится и использовать наш memcached-сервер. Обезопасим себя, дадим такое право только своему серверу (localhost). Откроем файл /etc/memcached.conf через панель управления, либо через консоль:

vi /etc/memcached.conf

Данный файл содержит подробные комментарии. Обязательно ознакомьтесь с ними.

Добавьте строку -l 127.0.0.1.

Перезагружаем memcached-сервер командой:

/etc/init.d/memcached restart

И проверим еще раз:

netstat -tap | grep memcached

В результате мы должны получить что-то вроде

tcp 0  0 localhost.localdo:11211 *:*  LISTEN     13092/memcached

Теперь memcached работает только на локальный сервер.

Установка memcache

Перечень команд (версия memcache может отличаться!):

apt-get install php5-dev libmemcache-dev
pecl download memcache
tar xzvf memcache-2.2.6.tgz
cd memcache-2.2.6/
phpize && ./configure --enable-memcache && make
cp modules/memcache.so /usr/lib/php5/20060613/
echo 'extension=memcache.so' >> /etc/php5/apache2/php.ini

Перезагружаем Apache:

apachectl graceful

Проверим скрипт, размещенный нами ранее по адресу http://example.com/info.php. Теперь мы должны найти там пункт Memcache.

Проверим работу Memcached

Создадим файл result.php и запустим его.

<?php
if (!class_exists("Memcache"))  exit("Memcached не установлен");
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or exit("Невозможно подключиться к серверу Memcached");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Не получилось оставить запись в Memcached");
echo "Записываем данные в кеш Memcached (данные будут храниться 10 секунд)<br/>\n";
$get_result = $memcache->get('key');
echo "Данные, записанные в Memcached:<br/>\n";
var_dump($get_result);
?>

Результат работы скрипта:

Server's version: 1.4.13
Записываем данные в кеш Memcached (данные будут храниться 10 секунд)
Данные, записанные в Memcached:
object(stdClass)#3 (2) { ["str_attr"]=> string(4) "test" ["int_attr"]=> int(123) }

Все так или почти так? Тогда все в порядке. Если нет — попробуйте повторить процедуры.

Опубликовано: 10 октября 2015 года, в рубрике «Серверная».

Комментарии для данной записи отключены
Поблагодарить автора статьи
Зачем это нужно