Compilation Installation et Configuration de Memcached
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.