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.