Дело в том, что установить 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 |