Назад | Перейти на главную страницу

nginx, похоже, не загружает модуль memcached для php

У меня есть машина Ubuntu с запущенными nginx и memcache, и я пытаюсь использовать PHP с Memcached. я собираюсь Fatal error: Class 'Memcached' not found.

Ini файл загружается из /etc/php5/fpm/php.ini, и все другие дополнительные файлы .ini анализируются, кроме memcached.ini (даже после перезапуска nginx), как видно в выводе phpinfo ().

Я попытался apt-get install php5-memcache и он прошел без ошибок. Тем не мение, pecl install memcached не выполняется с ошибкой ниже:

In file included from /tmp/pear/temp/memcached/php_memcached.h:22:0,
                 from /tmp/pear/temp/memcached/php_memcached.c:47:
/tmp/pear/temp/memcached/php_libmemcached_compat.h:5:40: fatal error: libmemcached-1.0/memcached.h: No such file or directory
compilation terminated.
make: *** [php_memcached.lo] Error 1
ERROR: `make' failed

На сервере есть libmemcache в /usr/include/libmemcached, но даже pecl install с --with-libmemcache=/usr/include/libmemcached терпит неудачу.

Выход для php -i | grep -i memcache как показано ниже:

/etc/php5/cli/conf.d/memcached.ini,
memcached
memcached support => enabled
libmemcached version => 0.44
Registered save handlers => files user memcached 
PWD => /usr/include/libmemcached
_SERVER["PWD"] => /usr/include/libmemcached

Я не уверен, что еще проверить. Был бы очень признателен, если бы кто-то мог помочь мне что-то исправить.

Спасибо!

[ОБНОВЛЕНИЕ] Memcached работает из cli.

Я решил проблему. Единственное, что мне нужно было сделать, это перезапустить php5-fpm.
sudo service php5-fpm restart.

Нашел это в - https://insready.com/en/blog/building-nginx-microcaching-mariadbmysql-php-fpm-debian-6-apc-memcache-drupal-7-server

Каков результат

php -i | grep memcache

Я использовал memcache для хранения сессий php, а также Magento Cache & Sessions.

Не следует путать две вещи:

  1. Memcached -> Обратите внимание на 'd', который означает, что демон прослушивает порт номер 11211. Его можно использовать для хранения сеансов php вместо файловой системы и т. Д.

  2. Memcache -> модуль, обычно не компилируемый с помощью php. он используется, когда вы хотите сохранить свои php-сессии в memcached.

поэтому, если php -i | grep memcache показывает, что у вас установлен memcache. Затем вам нужно установить memcached (демон), чтобы иметь возможность использовать / отправлять ему сеансы.