Outils personnels

Apache - PHP : optimisation affichage et caches : Différence entre versions

De wikiGite

Ligne 1 : Ligne 1 :
= Gestionnaire de cache APC ou Eaccelerator =
+
= Gestionnaire de cache APC =
 +
Sur Debian :
 +
apt-get install php-apc
 +
Le paquet fait les déclarations nécessaire dans Apache/PHP (/etc/php5/apache2/conf.d/apc.ini) et recharge Apache.
 +
 
 +
Sur CentOS / BlueOnyx : activer les [[Dépôts complémentaires|dépôt de Remi]], puis
 +
yum install --enablerepo=remi php-pecl-apc
 +
Comme pour Debian, le paquet s'occupe du paramétrage d'Apache/PHP (/etc/php.d/apc.ini)
 +
 
 +
= Gestionnaire de cache Eaccelerator =
  
 
'''TODO'''
 
'''TODO'''

Version du 27 mars 2012 à 17:26

Gestionnaire de cache APC

Sur Debian :

apt-get install php-apc

Le paquet fait les déclarations nécessaire dans Apache/PHP (/etc/php5/apache2/conf.d/apc.ini) et recharge Apache.

Sur CentOS / BlueOnyx : activer les dépôt de Remi, puis

yum install --enablerepo=remi php-pecl-apc

Comme pour Debian, le paquet s'occupe du paramétrage d'Apache/PHP (/etc/php.d/apc.ini)

Gestionnaire de cache Eaccelerator

TODO

Varnish

TODO

Mod_deflate

Le module Apache mod_deflate permet de compresser à la volée les pages avant de les envoyer. La plupart des navigateurs récents savent interpréter et décompresser les pages. On l'active par

LoadModule deflate_module modules/mod_deflate.so
LoadModule deflate_module modules/mod_deflate.so

dans le httpd.conf de CentOS ou les mods-enabled de Debian.

Puis éditer (ou créer) un fichier /etc/httpd/conf.d/mod_deflate.conf (pour CentOS/BlueOnyx) ou /etc/apache2/mods-available/deflate.conf :

# SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/x-js  text/css application/x-javascript
DeflateCompressionLevel 8
DeflateMemLevel 8
DeflateWindowSize 14
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|exe|t?gz|zip|bz2?|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary

Tous ces paramètres à optimiser selon la configuration et l'utilisation des sites.

Mod_expires

Il est intéressant aussi de modifier le temps d'expiration des images dans le cache. C'est géré côté serveur par le module mod_expires, qui indique aux navigateurs clients pendant combien de temps il doivent réutiliser une image mise localement en cache, plutôt que de la recharger à chaque fois (notamment : l'image de fond, affichée sur chaque page !).

Charger le module

LoadModule expires_module modules/mod_expires.so
LoadModule expires_module modules/mod_expires.so

Puis, dans le répertoire racine, créer (ou ajouter à) un fichier .htaccess :

<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 7200 seconds"
 ExpiresByType image/jpg "access plus 1500000 seconds"
 ExpiresByType image/jpeg "access plus 1500000 seconds"
 ExpiresByType image/png "access plus 1500000 seconds"
 ExpiresByType image/gif "access plus 1500000 seconds"
 AddType image/x-icon .ico
 ExpiresByType image/ico "access plus 1500000 seconds"
 ExpiresByType image/icon "access plus 1500000 seconds"
 ExpiresByType image/x-icon "access plus 1500000 seconds"
 ExpiresByType text/css "access plus 1500000 seconds"
 ExpiresByType text/javascript "access plus 1500000 seconds"
 ExpiresByType text/html "access plus 7200 seconds"
 ExpiresByType application/xhtml+xml "access plus 7200 seconds"
 ExpiresByType application/javascript "access plus 7200 seconds"
 ExpiresByType application/x-javascript "access plus 1500000 seconds"
 ExpiresByType application/x-shockwave-flash "access plus 1500000 seconds"
</IfModule>

Note pour Apache : la directive AddType ci-dessus n'est autorisée dans les .htaccess que si FileInfo est ajouté à AllowOverrride. Penser à l'autoriser dans la configuration du serveur.