Дело в том, что установить 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"
  • PORT 11211 является портом прослушивания по умолчанию для Memcached.
  • USER — это пользователь memcached от которого будет запущен демон.
  • MAXCONN — максимальные количество возможных соединений.
  • CACHESIZE — это количество мегабайт (64 MB) для использования, если у вас есть много трафика, это хорошо для большинства малых/средних сайтов. Для загруженного сервера вы можете увеличить его на 512 или 1 Гб (1024 MB).
  • OPTIONS=»-l 127.0.0.1″ — это означает что memcached будет слушать только на localhost-е, избегая каких-либо внешних подключений. По умолчанию он установлен в INADDR_ANY.

запуск 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"

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

/usr

В конце в файл 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
[Посещений: 756, из них сегодня: 1]

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