Memcached php module install

Установка и настройка Memcached

В результате применения информации, данной в этой статье, вы сможете установить и настроить сервер Memcached и нужное расширение php для взаимодействия с ним, а также сервис анализа и статистики phpMemcachedAdmin

  • Как установить сервер Memcached
  • Настройка Memcached
  • Закрываем Memcached от доступа извне
  • Увеличиваем объём рабочей памяти Memcached
  • Хранение сессий PHP в Memcached
  • Способ для расширения memcache
  • Способ для расширения memcacheD
  • Проверка phpinfo
  • Готовый рабочий конфигурационный файл Memcached
  • Установка расширения memcache
  • Как проверить работу Memcached
  • phpMemcachedAdmin — мониторинг, статистика и управление Memcached
  • Установка и настройка phpMemcachedAdmin
  • В заключение

Установка будет происходить под Debian с сервером бекенда Apache. Если у вас рабочая связка NGINX + php5-fpm, просто заменяйте в командах apache2 на php5-fpm
Рабочий инструментарий: файловый менеджер для подключения по ssh со встроенным редактором Far Manager или putty.

Теперь допустим, у нас на этом хостинге уже есть сайт http://example.com

Для начала, нужно определить, как сконфигурирован PHP (вдруг Memcached уже установлен?)). Для этого в корне сайта временно создадим файл info.php с кодом

php-memcache

Теперь заглянем в него http://example.com/info.php

Если видим, что есть похожая запись, значит, всё в порядке, нужное расширение php установлено.
Если нет, значит, придётся поработать.

Как установить сервер Memcached

Перед установкой нужно обновить репозиторий

apt-get update && apt-get upgrade

Теперь установим memcached и модуль php под него

apt-get install memcached php5-memcache

Идёт установка. После её завершения проверяем, что получилось

netstat -tap | grep memcached

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

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

Теперь нужно перезагрузить Apache или php-fpm

Настройка Memcached

Теперь, когда сервер установлен, его надо поднастроить. Это не сложно и не займёт много времени

Закрываем Memcached от доступа извне

Как вы видите, memcached висит на 11211 порту по умолчанию. Так как в memcached нет встроенных механизмов аутентификации, то выходит, что любой может подсоединиться извне и использовать его в своих целях. Чтобы избежать этого, вы можете либо закрыть порт 11211 с помощью фаервола, либо сконфигурировать memcached-сервер, чтобы он мог использоваться только с локального хоста. Ниже описан последний способ.

    Открываем конфигурационный файл

service memcached restart
/etc/init.d/memcached restart
netstat -tap | grep memcached

В итоге мы должны увидеть подобное

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

Также, после всех изменений не забудьте перезапустить Apache

Читайте также:  Html label in text field

Увеличиваем объём рабочей памяти Memcached

По умолчанию, в Memcached отведено на использование 64 мегабайта оперативной памяти. Я увеличу до 1024, вы исходите из параметров вашего сервера

    Открываем конфигурационный файл

service memcached restart

Хранение сессий PHP в Memcached

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

Можно ускорить php, перенеся хранилище сессий из hdd в оперативную память с помощью memcached

Вы должны знать, какое расширение php вы используете, memcache или memcached . Между ними есть разница, а уточнить, что стоит у вас, можно с помощью phpinfo(), тут есть тонкость в настройках, будьте внимательны

Способ для расширения memcache

session.save_handler = memcache session.save_path = "tcp://127.0.0.1:11211"

Способ для расширения memcacheD

session.save_handler = memcached session.save_path = "127.0.0.1:11211"

Проверка phpinfo

Теперь нужно проверить, что имеем на выходе. Для этого, открываем страницу с phpinfo() и ищем в коде session.save_path в столбце с локальными значениями. В значении должно быть tcp://127.0.0.1:11211 или 127.0.0.1:11211 . Если значения не поменялись, смотрите конфиг домена в Апаче (например тут: /etc/apache2/vhosts/sheensay/sheensay.ru.conf ), а ищем
php_admin_value session.save_path

Кстати, также вы можете воспользоваться директивой php_value , чтобы настраивать не весь сервер глобально, а только конкретные сайты. Для этого, вы можете отредактировать .htaccess в корне вашего сайта

php_value session.save_handler "memcache" php_value session.save_path "tcp://127.0.0.1:11211"

Готовый рабочий конфигурационный файл Memcached

Вы также можете настроить всё под свои потребности, конфигурационный файл содержит подробные комментарии:

# memcached default config file # 2003 - Jay Bonci [email protected]> # This configuration file is read by the start-memcached script provided as # part of the Debian GNU/Linux distribution. # Run memcached as a daemon. This command is implied, and is not needed for the # daemon to run. See the README.Debian that comes with this package for more # information. -d # Log memcached's output to /var/log/memcached logfile /var/log/memcached.log # Be verbose # -v # Be even more verbose (print client commands as well) # -vv # Start with a cap of 64 megs of memory. It's reasonable, and the daemon default # Note that the daemon will grow to this size, but does not start out holding this much # memory # Объём памяти в мегабайтах, который отведён для кеширования. По умолчанию, 64 мегабайта. #-m 64 -m 1024 # Порт, на котором будет висеть Memcached, по умолчанию 11211 -p 11211 # Run the daemon as root. The start-memcached will default to running as root if no # -u command is present in this config file -u memcache # Specify which IP address to listen on. The default is to listen on all IP addresses # This parameter is one of the only security measures that memcached has, so make sure # it's listening on a firewalled interface. -l 127.0.0.1 # Limit the number of simultaneous incoming connections. The daemon default is 1024 # # -c 1024 # Lock down all paged memory. Consult with the README and homepage before you do this # -k # Return error when memory is exhausted (rather than removing items) # -M # Maximize core file limit # -r

Установка расширения memcache

Ниже пошагово указаны команды, с помощью которых вы сможете установить php-расширение 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, чтобы изменения вступили в силу

Читайте также:  Load css and javascript async

Как проверить работу Memcached

Создадим в корне сайта файлик memcachetest.php и запишем туда следующий код

connect('localhost', 11211) or exit("Невозможно подключиться к серверу Memcached"); $version = $memcache->getVersion(); echo "Server's version: ".$version."
\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 секунд)
\n"; $get_result = $memcache->get('key'); echo "Данные, записанные в Memcached:
\n"; var_dump($get_result); ?>

memcachedtest

Теперь осталось проверить результаты: http://example.com/memcachetest.php
Если всё сделали правильно, увидите что-то навроде

phpMemcachedAdmin — мониторинг, статистика и управление Memcached

phpMemcachedAdmin — это программное обеспечение, предоставляющее веб-интерфейс для мониторинга и управления сервисом Memcached на Linux. Позволяет видеть в реальном времени статистику для всех поддерживаемых сервером операций: get, set, delete, increment, decrement, reclaimed, evictions, cas, а также серверную статистику: сеть, позиции, рабочую версию вкупе с чартами и внутренней серверной конфигурацией.

Установка и настройка phpMemcachedAdmin

Тут можно пойти несколькими путями: выделить отдельный домен или поддомен под работу этого сервиса. А можно сделать поддиректорию в рабочем сайте и поставить пароль на неё или настроить ограничение по IP. Я опишу последний способ с установкой пароля на папку как более простой.

Итак, допустим, у нас есть сайт https://sheensay.ru

Создаём директорию и переходим в неё

mkdir phpMemcachedAdmin && cd phpMemcachedAdmin

Скачиваем последнюю версию дистрибутива

wget http://phpmemcacheadmin.googlecode.com/files/phpMemcachedAdmin-1.2.2-r262.tar.gz

Распаковываем и удаляем архив с дистрибутивом

tar -xvzf phpMemcachedAdmin-1.2.2-r262.tar.gz && rm -rf phpMemcachedAdmin-1.2.2-r262.tar.gz

Рекурсивно выставляем нужные права доступа в текущей директории

find ./ -type f -exec chmod 0644 <> \; find ./ -type d -exec chmod 0755 <> \;

Создаём .htaccess для авторизации по паролю (в строку 4 вносите свой логин)

AuthType Basic AuthName "Private Area" AuthUserFile .htpasswd Require user memcachedmanager
htpasswd -c .htpasswd memcachedmanager

На этом всё. Логин на каталог memcachedmanager , если вы не меняли его. Открываете https://sheensay.ru/phpMemcachedAdmin (домен меняете на свой), вводите логин/пароль и пользуетесь

Читайте также:  Joomla blog item php

В заключение

Рекомендую ознакомиться со статьёй про memcached. В ней раскрыта общая информация о нём и некоторые тонкости работы.
На этом всё. Если что непонятно, задавайте вопросы в комментариях

Источник

Memcached php module install

Information for installing this PECL extension may be found in the manual chapter titled Installation of PECL extensions. Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: » https://pecl.php.net/package/memcached.

If libmemcached is installed in a non-standard location, use —with-libmemcached-dir=DIR switch, where DIR is the libmemcached install prefix. This directory has to contain the include/libmemcached/memcached.h file.

Zlib is required for compression support. To specify non-standard installation of Zlib, use —with-zlib-dir=DIR switch, where DIR is the Zlib install prefix.

Session handler support is enabled by default. To disable it, use —disable-memcached-session switch.

SASL authentication support is disabled by default. To enable it, use —enable-memcached-sasl switch. This requires that libsasl2 has been installed and that libmemcached has been built with SASL support enabled.

User Contributed Notes 5 notes

Do not lose your time to install it on Ubuntu just trying «sudo apt-get install php5-memcached». There is something you need to do that sure installing memcached. Anyway.

Step 1.
$ sudo apt-get install memcached
Step 2.
$ sudo apt-get install php5-memcached
Step 3.
$ sudo /etc/init.d/apache2 restart

$mc = new Memcached ();
$mc -> addServer ( «localhost» , 11211 );

$mc -> set ( «foo» , «Hello!» );
$mc -> set ( «bar» , «Memcached. » );

$arr = array(
$mc -> get ( «foo» ),
$mc -> get ( «bar» )
);
var_dump ( $arr );
?>

Hoping to help someone.
~Kerem

$ sudo apt-get install memcached
$ sudo apt-get install php-memcached
$ sudo apachectl graceful

$mc = new Memcached();
$mc->addServer(«localhost», 11211);
.

If your server has —enable-json=shared as mine did, this extension requires you to have extension=json.so to load properly.

i’m planning on using membase for my website and i was really struggling to install the memcashed php client on ubuntu with pear, but actually there is an easier way:

$ sudo apt-get install php5-memcached

you dont even need to install the membase server first — this can be done afterwards. hope this helps someone!

At present memcached-1.0.0 does not compile with libmemcached-0.38. This is apparently due to libmemcached chaning the API.

Note: I am encountering the same ‘memcached_st’ has no member named ‘hash’ error on a Debian lenny amd_64 box.

Источник

Оцените статью