Magento Open Source 2.4.8 est la dernière version de la plateforme e-commerce (elle requiert PHP 8.4 et MariaDB 11.4). Voici des astuces pratiques de configuration, de performance et de durcissement pour une boutique Magento 2 en production. L’essentiel de l’administration se pilote avec l’outil bin/magento, lancé depuis la racine du projet.
bin/magento : les commandes essentielles
# Vider le cache bin/magento cache:flush # Reindexer toutes les donnees bin/magento indexer:reindex # Appliquer les migrations apres une mise a jour bin/magento setup:upgrade # Compiler l'injection de dependances + deployer les assets statiques bin/magento setup:di:compile bin/magento setup:static-content:deploy fr_FR en_US -f # Mode maintenance bin/magento maintenance:enable bin/magento maintenance:disable
Passer en mode production
En production, Magento doit impérativement tourner en mode production (assets pré-compilés, pas de génération à la volée) :
# Basculer en mode production (performances maximales) bin/magento deploy:mode:set production # Verifier le mode courant bin/magento deploy:mode:show
Magento derrière un reverse proxy (SSL offload)
Lorsque le HTTPS est terminé en amont par un reverse proxy, un load-balancer ou Varnish (SSL offload), Magento ne voit que du HTTP et génère des URLs en http:// — d’où des boucles de redirection et du contenu mixte. Magento considère la connexion comme sécurisée si l’en-tête X-Forwarded-Proto vaut https. On le lui indique :
# SSL termine en amont : declarer l'en-tete d'offload (stocke dans app/etc/config.php) bin/magento config:set --lock-config web/secure/offloader_header X-Forwarded-Proto
Côté proxy, il faut transmettre cet en-tête vers le backend :
# Nginx (devant Magento ou devant Varnish) proxy_set_header X-Forwarded-Proto $scheme; # HAProxy (frontend HTTPS) http-request set-header X-Forwarded-Proto https
Performance : Varnish et Redis
Magento sait utiliser Varnish comme cache pleine page (full page cache) et Redis pour les sessions et le cache applicatif. Pour activer Varnish :
# Utiliser Varnish comme application de cache pleine page bin/magento config:set system/full_page_cache/caching_application 2 # Declarer l'hote Varnish bin/magento setup:config:set --http-cache-hosts=127.0.0.1:6081
Pensez aussi à passer les indexeurs en mode planifié (« Update on Schedule ») pour ne pas réindexer à chaque modification :
bin/magento indexer:set-mode schedule
Le cron, indispensable
Sans cron, Magento ne fonctionne pas correctement (réindexation, e-mails, génération du cache, mises à jour…). Installez les tâches planifiées :
bin/magento cron:install
Durcir la sécurité
Quelques bonnes pratiques de sécurité sur Magento :
# Personnaliser l'URL de l'admin (limite les attaques automatisees)
bin/magento setup:config:set --backend-frontname=admin_5x8z2k
# Permissions de fichiers recommandees par Magento
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
# Proteger le fichier de configuration
chmod o-rwx app/etc/env.php
Ne désactivez jamais l’authentification à deux facteurs (2FA), activée par défaut depuis Magento 2.4, et appliquez sans tarder les patches de sécurité : les boutiques Magento sont scannées et attaquées très rapidement après la publication d’une faille.
