Установка и настройка memcached на CentOS 7 + PHP 5.6

Дело в том, что установить memcached стандартным образом на CentOS 7 сейчас нельзя, потому что с этой ОС идет PHP 5.6, а в репозитарии лежит уже новая версия memcached 3, которая требует PHP 7 и выше.

Выполняем установку memcached:



# yum install memcached

Отредактируем файл:



$ vim /etc/sysconfig/memcached

Убедитесь, что в данном файле конфигурации имеются следующие строки:



1
2
3
4
5
PORT="11211"  
USER="memcached"  
MAXCONN="256"  
CACHESIZE="64"  
OPTIONS="-l 127.0.0.1"


запуск Memcached выполняется:

1
2
3
# systemctl enable memcached
 
# systemctl start memcached

Установка PHP расширений и библиотек с Memcached.

выполняем:

# yum install php-pear php-devel zlib-devel libmemcached-devel

На этой стадии расширение pecl_http версии 3 нам установить не удастся, из-за несовместимости версий.

Также, для успешного компилирования pecl потребуется установить два дополнительных пакета, которые являются пререквизитами компиляции:

1
2
3
# yum install php-raphf
 
# yum install php-propro

 

Далее в файл php.ini (e меня он лежит в /usr/local/php/php.ini) необходимо добавить строчки, которые инициализируют расширения:

1
2
3
extension=raphf.so
extension=propro.so
extension=http.so

Вот теперь можно установить pecl_http версии 2 командой:

# pecl install pecl_http-2.5.5

Запустится установка и компиляции PHP. Установка спросит, где найти библиотеки zlib (если не сможет её найти), raphf и propro. Необходимо указать путь:

/usr/lib64/

Далее ставим еще одну библиотеку-расширение:

yum install php-pecl-memcached.x86_64

И наконец, может скомпилировать PHP с Memcached 2 версии:

pecl install memcached-2.2.0

Во время установки pecl попросит уточнить, расположение библиотеки libmemcached (файл memcached.h).

Не надо указывать полный путь к ней! Дело в том, что в скрипте ./configure проверяется такой путь:

"$PHP_LIBMEMCACHED_DIR/include/libmemcached/memcached.h"

Таким образом, вам надо указать лишь часть пути:

<strong>/usr</strong>

В конце в файл php.ini добавляем строчку инициализации:

1
extension=memcached.so

Вообще, при компилации должен создаться файл /etc/php.d/50-memcached.ini, который уже содержит в себе строчку инициализации, но для верности лучше это добавить в основной файл (по крайней мере так рекомендует установщик).

После этого перезапускаем сервисы memcached и httpd/nginx

systemctl restart memcached.service
 
systemctl restart httpd.service

Проверяем, что модуль PHP запущен:

php -m | grep memcached
[Посещений: 28, из них сегодня: 1]

Понравилась публикация? Почему нет? Оставь коммент ниже или подпишись на feed и получай список новых статей автоматически через feeder.