Wie installiere ich Memcache auf Mavericks? (MAMP)

Ich habe MAMP auf meinem Rechner und möchte Memcache für PHP installieren, weil eines meiner Projekte Fehler wie Fatal error: Class 'Memcache' not found.

Ich habe X-Code aus dem Appstore und libevent , memcached , libmemcached with homebrew installiert .

Dann..

cd /tmp; pecl download memcached
gzip -d < memcached-2.2.0.tgz | tar -xvf -
cd memcached-2.2.0; phpize
./configure; make
sudo make install

Gemeinsame Erweiterungen installieren: /usr/lib/php/extensions/no-debug-non-zts-20100525/

Danach habe ich memcached.so und memcache.so in meinen extension_folder kopiert:

/Applications/MAMP/bin/php/php5.5.10/lib/php/extensions/no-debug-non-zts-20121212/

und Erweiterung = memcached.so zu meiner php.ini hinzugefügt.

Ich erhalte immer noch einen schwerwiegenden Fehler. Was ist das Problem?

Antworten (2)

Es scheint, dass es 2 Memcache-Erweiterungen gibt. Es gibt Memcache und Memcache, letzteres scheint seit 2012 nicht mehr gepflegt zu werden.

Es sieht so aus, als ob Ihr Code von Memcache abhängt, da Sie Brew verwenden. Sie könnten einfach Folgendes tun:

brew install php55-memcache

oder

pecl install 

Installieren Sie Brew, indem Sie Folgendes ausgeben:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Sieht nach den in der Ordnerstruktur genannten Daten aus. Diese Daten sind wirklich die API-Version. Die API von 2010 ist nicht kompatibel mit der API von 2012.

Sie müssen die PHP-Memcache-Erweiterung mit phpize usw. aus der tatsächlichen PHP-Version kompilieren, die Sie verwenden werden. Es hört sich so an, als hätten Sie zwei verschiedene PHP-Installationen - eine in /usr/lib/php und eine in /Applications/MAMP/.

Ich habe es mit /Applications/MAMP/bin/php/php5.5.10/bin/phpize versucht, aber das Problem ist dasselbe. Ich füge auch die Zeilen extension=memcached.so und extension=memcache.so zu php ini hinzu und kopierte diese Dateien nach extension_dir. Memcached läuft im Hintergrund.
Kopieren Sie nicht die Erweiterungen aus dem Verzeichnis mit dem anderen Datum - das wird niemals funktionieren. Der einfachste Weg, fortzufahren, besteht darin, das Verzeichnis, das Sie mit dem Memcache-Code von PECL haben, zu löschen und mit der richtigen phpize von vorne zu beginnen. Wenn Sie das Verzeichnis einmal mit den falschen Informationen "verschmutzt" haben, müssen Sie "sauber machen", um alles zu bereinigen - der einfachste Weg, dies sicherzustellen, wenn Sie sich mit Programmierung und Makefiles nicht auskennen, ist Entfernen Sie einfach den Ordner und beginnen Sie von vorne.