You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Sunday, March 28th 2010, 4:11pm

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.38.tar.gz

tar xvfz libmemcached*.tar.gz
cd libmemcached*
./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

Lexikon 4.1.5, developed by www.viecode.com
Besuchen Sie uns auf Google+