PHP memcached фатальная ошибка: класс "Memcache" не найден

я вставил пример из php.net для использования memcached в php, и я получаю:

Fatal error: Class 'Memcache' not found

У меня это в моем php.ini:

[memcache]
с memcache.hash_strategy = "consistent"
с memcache.max_failover_attemps = 100
с memcache.allow_failover = 1

вот информация из php-i и php-m соответственно:

php-i | grep-i memcache
как memcached
memcached поддержка => включен
libmemcached версия => 0.37
Зарегистрированные обработчики сохранения = > файлы пользователя SQLite memcached

php-m | grep-i memcache
как memcached

таким образом, php, похоже, загрузил memcached как модуль, и php info говорит, что он загружен и использует v .37. Я еще не пробовал через apache, я только использовал это через cli прямо сейчас. Есть мысли?

5 ответов


есть два расширения для memcached в PHP,"memcache для" и "memcached".

похоже, вы пытаетесь использовать один ("memcache"), но другой установлен ("memcached").


Dispite то, что принятый ответ говорит в комментариях, правильный способ установить "Memcache":

sudo apt-get install php5-memcache

Примечание Memcached & Memcached-это две разные, хотя и связанные части программного обеспечения, которые часто путают.

редактировать Поскольку это теперь старый пост, я подумал, что стоит упомянуть, что вы должны заменить рнр5 с номером версии php.


Я нашел решение в этом посте: https://stackoverflow.com/questions/11883378/class-memcache-not-found-php#=

Я нашел рабочие dll-файлы для PHP 5.4.4

Я не знаю, насколько они стабильны, но они работают наверняка. Кредиты идут на это ссылка на сайт.

http://x32.elijst.nl/php_memcache-5.4-nts-vc9-x86.zip

http://x32.elijst.nl/php_memcache-5.4-vc9-x86.zip

Это версия 2.2.5.0, я заметил после ее компиляции (для PHP 5.4.4).

обратите внимание, что это не 2.2.6, но работает. Я также отразил их в своем собственном FTP. Зеркальные ссылки:

http://mustafabugra.com/resim/php_memcache-5.4-vc9-x86.zip http://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86.zip


право php_memcache.dll файлы. В моем случае я использовал lib, скомпилированный с vc9 вместо компилятора vc6. В журналах ошибок apatche я получил что-то вроде:

запуск PHP: sqlanywhere: невозможно инициализировать модуль модуль, скомпилированный с идентификатор сборки=API20090626,TS, VC9 PHP скомпилировано с идентификатором сборки=API20090626, TS, VC6 эти параметры должны соответствовать

проверьте, есть ли у вас тот же журнал и попробуйте загрузить другую dll, которые скомпилированы с другой компилятор.


Я вошел в wp-config/ и удалил объект-кэш.php и расширенный-кэш.php, и он отлично работал для меня.