Magento est un des SGC pour commerce électronique les plus populaires. Moyennant quelques petites optimisations, il est capable de parfaitement gérer de petites et de grandes boutiques en ligne. Cet article vous aidera à préparer votre SGC à faire face à d’importantes quantités de trafic, sans faire de compromis au niveau de la vitesse.
La première partie de cet article vous montrera des techniques d’optimisation standards, applicables à n’importe quel hébergement, même si vous n’utilisez pas les options de mise en cache.
Ce n’est que lorsque vous aurez terminé l’optimisation générale que vous pourrez vous attaquer à la seconde partie de l’article, qui vous montre comment votre SGC peut tirer profit des outils de l’hébergement Performance.
Table des matières:
- Hébergement Performance
Hébergement Performance pour Magento
Cet article vous expliquera comment configurer votre Magento pour que ce dernier fonctionne avec votre compte d’hébergement Performance.
Si vous avez appliqué les [optimisations standards] et que vous ou vos clients avez besoin d’une configuration encore plus performance, les performances de Magento peuvent être optimisées de manière significative en implémentant une instance Redis avec mise en cache de pages entières.
Activer une instance Redis
Pour ce faire, vous devrez acheter/activer une instance Redis.
La taille de l’instance dépend du nombre de pages devant être mises en cache – nombre qui diffère d’un site à l’autre.
En général, une instance de 64 Mo ou 128 Mo suffit.
Installer et configurer Lesti_fpc avec modman
Compatibilité et préparation:
- Lesti_fpc peut être utilisé avec Redis (key-value store).
- Mais Ramdisk doit être supprimé (s’il a été utilisé).
- Le répertoire www/[magento]/var/cache doit être vidé.
Modman:
Autoriser les symlinks:
Dans le back-end de Magento, allez dans:
System >> Configuration >> Advanced >> Developer >> Template Settings >> Allow symlinks
Install:
Revenez ensuite dans le terminal ou l’invite de commande en connexion avec le pack d’hébergement.
Assurez-vous que vous vous trouvez dans le bon répertoire, sans quoi vous risquez de créer de sérieux problèmes !
Vous devez exécuter les commandes depuis votre répertoire Magento ; dans le cas présent, Magento est installé à l’adresse www/magento/
cd ~/www/magento/
wget -q --no-check-certificate -O - https://raw.github.com/colinmollenhour/modman/master/modman-installer > modman.sh
chmod +x modman.sh
./modman.sh
Done. Modman installed in /data/sites/web/USER/bin/modman
Lancement:
~/bin/modman init
Initialized Module Manager at /data/sites/web/ninefortwoperformancecom/www/magento
Installer Lesti_fpc:
Saisissez les commandes suivantes dans votre terminal ou invite de commande:
~/bin/modman clone https://github.com/GordonLesti/Lesti_Fpc.git
CmCacheBackend_Redis:
Maintenant, installez CmCacheBackend_Redis
~/bin/modman clone https://github.com/colinmollenhour/Cm_Cache_Backend_Redis.git
Activer une instance Redis:
Après cela, activez une instance Redis via le My Combell
- Nom: CECIESTLENOMDELINSTANCEREDIS
- Taille: 256 Mo
- Mot de passe: CECIESTLEMOTDEPASSEDEVOTREREDIS
- Adresse IP: CECIESTLADRESSEIPDEVOTREREDIS
Créez/modifiez fpc.xml
Revenez à votre terminal. Créez/modifiez votre fichier fpc.xml comme indiqué ci-dessous. Personnalisez le contenu du fichier et enregistrez.
nano app/etc/fpc.xml
~~~~~~
86400 CmCacheBackendRedis
THISISYOUREDISIPADDRESS
THISISYOURREDISPORT 0 0
THISISYOURREDISPASSWORD 0
1
86400 10
1
1
gzip
LESTIFPC_ ~~~~~~
Attention: Vous devez personnaliser les détails et vous assurer que vous avez correctement saisi le serveur, le port et le mot de passe.
Testez ensuite la connexion au serveur Redis depuis la prison SSH. Redis-cli est maintenant disponible sur les prisons SSH mutualisées. Il est nécessaire de réinitialiser le SSH pour pouvoir les utiliser. Une fois que cela a été fait, vous pouvez utiliser Redis-cli:
redis-cli -h THISISYOUREDISIPADDRESS -p THISISYOURREDISPORT
250.250.250.0:10000> AUTH THISISYOURREDISPASSWORD
OK
Modifier local.xml
Nous allons ensuite modifier le fichier local.xml:
nano app/etc/local.xml
Et entre les tags du cache, là où vous aurez généralement l’APC, collez le code suivant (Une fois de plus, faites attention à l’IP du serveur, au port et au mot de passe)
<cache>
<backend>Cm_Cache_Backend_Redis</backend>
<backend_options>
<server>THISISYOUREDISIPADDRESS</server>
<port>THISISYOURREDISPORT</port>
<database>0</database>
<password>THISISYOURREDISPASSWORD</password>
<force_standalone>0</force_standalone> <!-- 0 for phpredis, 1 for standalone PHP -->
<connect_retries>1</connect_retries> <!-- Reduces errors due to random connection failures -->
<automatic_cleaning_factor>0</automatic_cleaning_factor> <!-- Disabled by default -->
<compress_data>1</compress_data> <!-- 0-9 for compression level, recommended: 0 or 1 -->
<compress_tags>1</compress_tags> <!-- 0-9 for compression level, recommended: 0 or 1 -->
<compress_threshold>20480</compress_threshold> <!-- Strings below this size will not be compressed -->
<compression_lib>gzip</compression_lib> <!-- Supports gzip, lzf and snappy -->
<persistent>0</persistent> <!-- persistence value, 0: not in use, > 0 used as persistence ID -->
</backend_options>
</cache>
Modifier Cm_RedisSession.xml
Activez ensuite Cm_RedisSession.xml
nano app/etc/modules/Cm_RedisSession.xml
Changez False en True:
<active>true</active>
Maintenant que tout ceci a été configuré, vous devez revenir dans le back-end de Magento et apporter quelques modifications supplémentaires au cache.
Activer le cache de pages entières Fpc
Dans le back-end de Magento, allez dans Système >> Gestion du cache
Fpc Full Page Cache => Activer
Tous les autres caches => Laissez-les activés
Résolution des problèmes
Si vous ne voyez pas le cache de pages entières FPC dans la liste, cela signifie que vous êtes toujours en train d’utiliser le cache.
Celui-ci peut être vidé en vidant le répertoire du cache:
cd var/cache/
rm -rf *
Si vous ne voyez toujours pas le cache de pages entières FPC dans la liste, cela signifie qu’il y a un problème au niveau de l’installation de vos modules via modman.
cd ~/www/magento/
~/bin/modman list
Cm_Cache_Backend_Redis
Lesti_Fpc
Si vous ne voyez pas ‘CmCacheBackendRedis’ et ‘LestiFpc’ dans la liste ici, cela signifie que vous n’avez pas correctement installé les modules.
Testez si votre Redis fonctionne avec votre SGC; vous devriez pouvoir lister les clés de Redis en exécutant les commandes suivantes, l’une après l’autre. Prenez soin de bien vérifier l’hôte, le port et le mot de passe:
redis-cli -h THISISYOUREDISIPADDRESS -p THISISYOURREDISPORT
250.250.250.0:10000> AUTH THISISYOURREDISPASSWORD
OK
keys *
Si vous ne voyez aucune clé, cela signifie que la configuration ne fonctionne pas correctement.
Faire un warm-up du cache.
Installer n98
Si Redis est implémenté correctement, nous pouvons maintenant faire un warm-up du cache.
Pour ce faire, il faut installer n98
cd /site/bin
git clone https://github.com/netz98/n98-magerun
cd n98-magerun
curl -s https://getcomposer.org/installer | php
php -f ./composer.phar -- install
cd ~/www/magento/
Activer n98
Et après que n98 ait été installé, il faut l’activer.
Attention: veillez à faire cela depuis le répertoire Magento
/site/bin/n98-magerun/n98-magerun.phar sys:url:list --add-products --add-categories 1 > /site/tmp/crawl.txt
Attention : La valeur ‘1’ peut parfois être égale à ‘0’ ou ‘2’ ou ‘3’ ou un chiffre plus élevé. Cela dépend de la configuration du client.
for i in `cat /site/tmp/crawl.txt`; do wget -q $i; done
Le cache fera ainsi un warm-up. Vous verrez cela en ouvrant un autre shell pour exécuter la commande ‘ps aux’. Vous verrez ainsi chaque processus wget.
Lorsque les processus arrêtent d’apparaître, cela signifie qu’il est prêt.
Vérifiez les clés dans Redis – leur nombre a augmenté.