web-dev-qa-db-fra.com

PHP Memcached Erreur fatale: La classe 'Memcache' est introuvable.

J'ai collé l'exemple de php.net pour utiliser memcached en php et je reçois: 

Fatal error: Class 'Memcache' not found

J'ai ceci dans mon php.ini:

[memcache]
memcache.hash_strategy = "cohérent"
memcache.max_failover_attemps = 100
memcache.allow_failover = 1

Voici les informations de php -i et php -m respectivement:

php -i | grep -i memcache
memcached
support memcached => activé
version de libmemcached => 0.37
Gestionnaires de sauvegarde enregistrés => fichiers utilisateur sqlite memcached 

php -m | grep -i memcache
memcached

Donc, php semble avoir chargé memcached en tant que module, et php info indique qu'il est chargé et utilise la version 37. Je n'ai pas encore essayé avec Apache, je l'utilise seulement avec cli pour le moment. Des pensées?

76
jpfuentes2

Il existe deux extensions pour memcached en PHP, " memcache " et " memcached ". 

On dirait que vous essayez d’en utiliser un ("memcache"), mais l’autre est installé ("memcache"). 

119
Charles

Malgré la réponse acceptée dans les commentaires, la méthode correcte pour installer 'Memcache' est la suivante:

Sudo apt-get install php5-memcache

NOTEMemcache & Memcached sont deux logiciels distincts mais liés, souvent confondus.

EDIT Comme il s’agit d’un ancien message, j’ai pensé qu’il valait la peine de mentionner que vous devriez remplacer php5 par votre numéro de version php.

20
Phill Healey

J'ai trouvé la solution dans cet article: https://stackoverflow.com/questions/11883378/class-memcache-not-found-php#=

J'ai trouvé les fichiers dll de travail pour PHP 5.4.4

Je ne sais pas comment ils sont stables mais ils travaillent à coup sûr. Les crédits vont à ce lien.

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

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

C'est la version 2.2.5.0 que j'ai remarquée après l'avoir compilée (pour PHP 5.4.4).

S'il vous plaît noter que ce n'est pas 2.2.6 mais fonctionne. Je les ai également reflétés dans mon propre FTP. Liens miroirs:

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

1
Xman Classical

Le droit est php_memcache.dll . Dans mon cas, j'utilisais lib compilé avec vc9 au lieu du compilateur vc6. Dans les journaux d'erreur apatche, j'ai obtenu quelque chose comme:

Démarrage PHP: sqlanywhere: Impossible de module d'initialisation Module compilé avec ID de construction = API20090626, TS, VC9 PHP compilé avec l'ID de construction = API20090626, TS, VC6 Ces options doivent correspondre

Vérifiez si vous avez le même journal et essayez de télécharger différentes dll compilées avec un compilateur différent.

0
Dalius Šidlauskas

Pour les utilisateurs OSX:

Exécutez la commande suivante pour installer Memcached:

brew install memcached
0
Maihan Nijat