< meta name="referrer" content="origin">
Home » Полезные советы » Установка memcached в панель управления plesk

Установка memcached в панель управления plesk

Меня попросили установить модуль memcached на обычный веб сервер. Задача простая и банальная, никаких сложностей раньше с этим не было. Но тут есть нюанс — установлена панель управления web сервером plesk. Задача резко усложняется, так как эта панель штатно не поддерживает установку и работу этого модуля. Расскажу, как правильно установить memcached на plesk.

Введение

Я работал на сервере Ubuntu 14.04.5 LTS. Эта статья будет актуальна для всех версий Ubuntu и Debian. В Centos нужно будет поменять имена устанавливаемых пакетов, а так все то же самое. Я покажу на примере версии php 7.1. Для остальных установленных в панели версий все делается аналогично, только меняем версию пакетов.

Если вы просто установите memcached стандартным способом, то он у вас запустится и будет работать. Вот только веб сервер не увидит новое расширение. У plesk свои обвязки для вебсервера — директории, конфиги, модули. Необходимо все аккуратно прописать в них. Приступим.

Установка расширения php-memcached в plesk

Начинаем с обновления сервера. Если этого не сделать, то скорее всего установленная свежая версия memcached из исходников будет конфликтовать с более старой версией модуля plesk-php. В итоге работать не будет. Я именно с этим и столкнулся. Так что первым делом обновляем сервер.

# apt-get update && apt-get upgrade

Теперь ставим необходимые для сборки компоненты. Что-то возможно у вас уже будет установлено.

# apt-get install plesk-php71-dev gcc make git pkg-config zlib1g-dev libmemcached-dev

Копируем исходники php модуля memcached.

# cd /usr/src
# git clone https://github.com/php-memcached-dev/php-memcached.git

Собираем и устанавливаем.

# cd php-memcached/
# git checkout php7
# /opt/plesk/php/7.1/bin/phpize
# ./configure --disable-memcached-sasl --with-php-config=/opt/plesk/php/7.1/bin/php-config
# make && make install

Обращаю внимание на выделенные значения. Для другой версии php нужно заменить путь на соответствующую версию. Подключаем модуль.

# echo "extension=memcached.so" > /opt/plesk/php/7.1/etc/php.d/memcached.ini
# plesk bin php_handler --reread

Перезапускаем службы.

# service apache2 restart
# service plesk-php71-fpm restart
# service psa restart

Проверяем вывод phpinfo. Модуль должен быть подключен. Если его там нет, посмотрите вывод команды.

# /opt/plesk/php/7.1/bin/php -i | grep memcached

Если все в порядке, то должно быть примерно следующее:

Установка memcached в панель управления plesk

Если будет какая-то ошибка, получите информацию. Пока я не обновил систему, получал ошибку в выводе команды о том, что у меня разные версии php и memcached.

Установка memcached в Ubuntu

Теперь ставим memcached в систему стандартным способом.

# apt-get install memcached

Добавляем в автозагрузку:

# update-rc.d memcached enable

Проверяем, что он установился и запустился.

# netstat -tulnp | grep memcached
 tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 12044/memcached
 udp 0 0 127.0.0.1:11211 0.0.0.0:* 12044/memcached
# ps aux | grep memcached
 memcache 12044 0.0 0.0 325408 2756 ? Sl 17:42 0:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1
 root 12066 0.0 0.0 11760 2288 pts/6 S+ 17:44 0:00 grep --color=auto memcached

Все в порядке.

Проверка работы memcached

Проверим работу memcached. Для этого на веб сервере создаем следующий скрипт:

# mcedit /var/www/vhosts/zerotest.ru/httpdocs/cache_test.php
<?php
 $mem = new Memcached();
 $mem->addServer("127.0.0.1", 11211);
 $result = $mem->get("data");

 if ($result) {
 echo $result;
 } else {
 echo "Записи нет в кэше. Добавляю!";
 $mem->set("data", "Я запись из кэша. Memcached работает") or die ("Не могу сохранить в memcached...");
 }
?>

При первом заходе на страничку, вы должны увидеть строку «Записи нет в кэше. Добавляю!». В этот момент добавляется запись в memcached. Теперь обновите страницу, должны увидеть строку «Я запись из кэша. Memcached работает». Это будет означать, что memcached правильно настроен и работает. Если это не так, то смотрите логи, разбирайтесь, в чем проблема.

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

Ваш e-mail не будет опубликован.