Compilation Installation et Configuration de Memcached

memcached png

Pour de meilleurs performance sur vos sites web

Memcache est un serveur de cache qui utilise la mémoire vive du serveur pour stocker ses données. Ce mode de stockage garantit des temps de lecture très inférieurs au système traditionnel cd cache de fichiers.

Memcached et eAccelerator peuvent fonctionner ensemble sans aucun problème.

  • Memcached met en cache les résultats et diverses variables de php.
  • eAccelerator optimise le code PHP.

Url du site officiel : http://memcached.org/

Pré-requis :

  • libevent
  • libevent-dev

Téléchargement :

Vous le trouverez ici : http://memcached.org/ Les versions plus ancienne ici : http://code.google.com/p/memcached/downloads/list

cd /opt/SOURCES/
curl -0 http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz
tar xvzf memcached-1.4.4.tar.gz 
cd memcached-1.4.4

Installation :

J'ai rencontré un souci avec le make qui me faisait des erreurs du type :

[...]
/usr/include/netinet/in.h:136:2: error: invalid preprocessing directive #typedef
/usr/include/netinet/in.h:137:2: error: invalid preprocessing directive #struct
/usr/include/netinet/in.h:138:4: error: invalid preprocessing directive #{
[...]
/usr/include/arpa/inet.h:78: error: expected ‘)’ before ‘__net’
make[2]: *** [memcached-memcached.o] Error 1
make[2]: Leaving directory `/opt/SOURCES/memcached-1.4.4'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/opt/SOURCES/memcached-1.4.4'
make: *** [all] Error 2

J'ai donc du faire :

rpm -qf /usr/include/netinet/in.h
rpm -e --nodeps glibc-headers
yum install glibc-headers

Car le fichier : /usr/include/netinet/in.h avait été modifié et embetait notre ami Memcached

mkdir /opt/memcached144
./configure --prefix=/opt/memcached144
make
make install

Lancement de Memcached :

Procédez comme ceci :

cd /opt/memcached144/bin
./memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 –u nobody

Vérification :

netstat -ntlp | grep memcached
tcp        0      0 127.0.0.1:11211             0.0.0.0:*                   LISTEN      17701/memcached

Il est bien lancé, poursuivons...

Intégration à PHP :

Vous pouvez le faire avec :

pecl install memcache

Ou manuellement :

cd /usr/local/src
curl -O http://pecl.php.net/get/memcache
tar zxvf memcache*
cd memcache-*
phpize
./configure
make
make test 
make install

Arrivez la vous devez modifier votre fichier php.ini:

Pour y intégrer ceci :

extension=memcache.so

moi j'ai du mettre :

extension=/opt/php5210/lib/php/extensions/no-debug-non-zts-20060613/memcache.so

Redémarrez votre apache :

service httpd stop
service httpd start

et vérifiez avec un phpinfo que Memcache focntionne bien.

ou plus simple :

php -r "phpinfo();" | grep memcache

Vous devriez avoir quelque chose comme ça :

memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user sqlite memcache

Voila votre premier rencontre avec Memcached est finie :)

Si vous voyez des différences de performances faites nous signe, merci.

Vus : 410
Publié par System Linux : 211