You are not logged in.

d0nut

Administrator

Location: Berlin

Lexicon articles: 51

  • Send private message

Friday, August 28th 2009, 5:47pm

Tags

memcache, memcached

Abstract

Für PHP gibt es zwei Memcached Module: memcached und memcache.
memcached bietet zur Zeit einen größeren Funktionsumfang.

Article

1. Unterschiede


* http://blog.perplexedlabs.com/2009/05/04…d-and-igbinary/
* http://pecl.php.net/package/memcache VS http://pecl.php.net/package/memcached
* http://www.php.net/manual/de/book.memcache.php VS http://www.php.net/manual/de/book.memcached.php

2. memcached installieren: Schritt1


Diese Anleitung wurde unter Ubuntu 9.04 (Jaunty) getestet, sollte aber prinzipiell auch mit anderen Distributionen funktionieren.

Als Grundvoraussetzung gehen wir von einem installierten PHP5 mit Apache2 aus
  • php5
  • apache2

Zusätzlich benötigen Sie nun die Entwickler-Versionen.
Achten Sie darauf, dass keine Pakete deinstalliert werden. Statt dem threaded können Sie natürlich auch das worker Paket installieren.
  • php5-dev (sonst kommt ein phpize Fehler)
  • apache2-threaded-dev (sonst kommt ein apxs Fehler)

Bash

1
apt-get install php5-dev apache2-threaded-dev


Bei der memcached Extension für PHP handelt sich um eine PECL Erweiterung, die in C programmiert ist. Das Plugin muss noch auf ihrem System kompiliert werden.

Doch keine Angst, mit dem PEAR Paket funktioniert das alles vollautomatisch. Installieren Sie:
  • php-pear

Bash

1
apt-get install php-pear


3. Paketvoraussetzungen: libmemcached


Source code

1
2
3
4
5
wget http://download.tangent.org/libmemcached-0.31.tar.gz

tar xvfz libmemcached*.tar.gz
cd libmemcached*.tar.gz
./configure && make && make install


Falls ihr diesen Schritt vergesst, werdet ihr folgende Fehlermeldung erhalten

Quoted

checking for ZLIB... yes, shared
checking for zlib location... /usr
checking for session includes... /usr/include/php5
checking for memcached session support... enabled
checking for memcached igbinary support... disabled
checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefix where libmemcached headers and library are located
ERROR: `/tmp/pear/temp/memcached/configure' failed



4. php-memcached installieren


Nun können wir die Installation mit folgendem Befehl starten.

Bash

1
pecl install memcached


Die Installation sollte automatisch durchlaufen. Bei Erfolg sollte am Ende folgender Text stehen:

Quoted

Build process completed successfully
Installing '/usr/lib/php5/20060613/memcached.so'
install ok: channel://pecl.php.net/memcached-1.0.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=memcached.so" to php.ini


5. php-memcached aktivieren


Bash

1
2
echo -e "\n\nextension=memcached.so" >> /etc/php5/apache2/php.ini
/etc/init.d/apache2 reload


6. Methodensignatur


Die Methodensignatur der Methode get muss sich geändert haben - das überschreiben macht Probleme:

Quoted

Strict Standards: Declaration of XXX::get() should be compatible with that of Memcached::get() in /var/www/XXX.php on line 111

Lexicon 4.1.0 RC 4 © www.wbb-security.de 2005-2009