webentwicklung-frage-antwort-db.com.de

PHP memcached Schwerwiegender Fehler: Klasse 'Memcache' nicht gefunden

Ich habe das Beispiel aus php.net für die Verwendung von memcached in php eingefügt und erhalte Folgendes: 

Fatal error: Class 'Memcache' not found

Ich habe folgendes in meiner php.ini:

[Memcache]
memcache.hash_strategy = "konsistent"
memcache.max_failover_attemps = 100
memcache.allow_failover = 1

Hier sind die Informationen von php -i bzw. php -m:

php -i | grep -i Memcache
Memcached
memcached support => aktiviert
libmemcached version => 0.37
Registrierte Speicherhandler => Dateien Benutzer sqlite memcached 

php -m | grep -i Memcache
Memcached

Php scheint also memcached als Modul geladen zu haben, und php info sagt, dass es geladen ist und v .37 verwendet. Ich habe es bisher noch nicht über Apache versucht, ich habe es jetzt nur über cli verwendet. Irgendwelche Gedanken?

76
jpfuentes2

Es gibt zwei Erweiterungen für memcached in PHP: " memcache " und " memcached ". 

Es scheint, als würden Sie versuchen, einen ("Memcache") zu verwenden, der andere ist jedoch installiert ("Memcache"). 

119
Charles

Trotzdem, was die akzeptierte Antwort in den Kommentaren sagt, ist der korrekte Weg, 'Memcache' zu installieren:

Sudo apt-get install php5-memcache

NOTEMemcache & Memcached sind zwei verschiedene, jedoch verwandte Teile der Software, die oft verwirrt sind.

EDIT Da dies nun ein alter Beitrag ist, dachte ich, dass es erwähnenswert ist, dass Sie php5 durch Ihre PHP-Versionsnummer ersetzen sollten.

20
Phill Healey

Ich habe in diesem Beitrag eine Lösung gefunden: https://stackoverflow.com/questions/11883378/class-memcache-not-found-php#=

Ich habe die funktionierenden DLL-Dateien für PHP 5.4.4 gefunden

Ich weiß nicht, wie stabil sie sind, aber sie arbeiten mit Sicherheit. Credits gehen auf diesen Link.

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

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

Es ist die Version 2.2.5.0, die ich nach dem Kompilieren bemerkt habe (für PHP 5.4.4).

Bitte beachten Sie, dass es nicht 2.2.6 ist, aber funktioniert. Ich habe sie auch in meinem eigenen FTP gespiegelt. Spiegellinks:

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

Das Recht ist php_memcache.dll . In meinem Fall habe ich lib mit vc9 anstelle von vc6 compiler kompiliert. In apatche Fehlerprotokollen bekam ich etwas wie:

PHP-Start: sqlanywhere: Kann nicht initialize module Modul, das mit .__ kompiliert wurde. Build ID = API20090626, TS, VC9 PHP kompiliert mit Build-ID = API20090626, TS, VC6 Diese Optionen müssen übereinstimmen

Überprüfen Sie, ob Sie dasselbe Protokoll haben, und versuchen Sie, eine andere DLL herunterzuladen, die mit einem anderen Compiler kompiliert wurde.

0

Für OSX-Benutzer:

Führen Sie den folgenden Befehl aus, um Memcached zu installieren:

brew install memcached
0
Maihan Nijat