Данная статья носит характер «Скорой помощи». Развернутое описание конкретных действий, которые позволять установить и настроить memcached на сервере.
Начнем с определения.
Memcached — программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы.
Начальные данные:
Начнем с последнего пункта. За счет запущенного интернет-ресурса (или его подобия) мы можем просто и быстро выяснить что у нас установлено (быть может, что среди прочего мы найдем и memcached). Создадим файл с названием info.php, в котором напишем:
<?php phpinfo(); ?>
Выполним код, обратившись в по адресу http://example.com/info.php:

Если среди всего прочего вы отыскали похожую запись — значит все в порядке и дело уже сделано. В противном случае — этот результат мы получим по итогам действий, описанных в данной публикации.
Запустим установку командой
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 может отличаться!):
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.
Создадим файл 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) }
Все так или почти так? Тогда все в порядке. Если нет — попробуйте повторить процедуры.