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
*
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
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
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:
|
Bash
|
1
|
apt-get install php-pear
|
|
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
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
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:
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
|
Bash
|
1
2
|
echo -e "\n\nextension=memcached.so" >> /etc/php5/apache2/php.ini
/etc/init.d/apache2 reload
|
Die Methodensignatur der Methode get muss sich geändert haben - das überschreiben macht Probleme:
Strict Standards: Declaration of XXX::get() should be compatible with that of Memcached::get() in /var/www/XXX.php on line 111
Request deletion
report critical content