Configuration Magento 2

Pour optimiser au mieux l’utilisation de Magento sur notre hébergement plusieurs paramétrages sont recommandés.

Configuration PHP

La configuration minimale a effectuer pour que Magento soit fonctionnel et performant.
Certaines valeurs peuvent être revues à la hausse pour des sites avec des volumes de base de donnée important, ceci dit il est recommandé autant que possible de n’affecter que les ressources nécessaires pour disposer d’une capacité de traitement optimale.

Rendez-vous sur la page https://admin.ethersys.fr/ et connectez-vous à l’aide de votre adresse email et de son mot de passe.
Ensuite rendez-vous dans la rubrique Environnement -> PHP ou directement sur la page https://admin.ethersys.fr/environment/php.

Version de PHP

La version de PHP à choisir dépend de celle de votre Magento, voici les versions de PHP possible en fonction de votre version de Magento

Choisir la version de PHP la plus élevée parmi celle proposée permet en général d’obtenir les meilleurs performances mais attention car parfois les modules et les développements spécifiques de votre Magento peuvent ajouter des contraintes supplémentaires et restreindre ce choix.

Paramètres de PHP

Les paramètres suivants sont à renseigner dans le champ php.ini personnalisé.

memory_limit=756M
max_execution_time=600
max_input_vars = 20000
extension=intl.so
extension=sodium.so
extension=sockets.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption = 256M
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=100000
opcache.fast_shutdown=1
display_errors = off
zlib.output_compression = on
session.auto_start = off

Configuration du site Apache

Au niveau des paramètres du site il est nécessaire d’activer certains module pour Magento 2 et également d’optimiser la mise en cache et la sécurité en paramétrant les en têtes (ces paramétrages peuvent être à adapter en fonction des développement apporté à votre site).

Rendez-vous sur la page https://admin.ethersys.fr/ et connectez-vous à l’aide de votre adresse email et de son mot de passe.
Ensuite rendez-vous dans la rubrique Web -> Sites -> bouton Modifier correspondant au site de Magento.
Les paramètres suivants sont à renseigner dans le champ Directives supplémentaires du virtual host de la section Configuration avancée .

<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
</IfModule>

<IfModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
#Header always set Set-Cookie HttpOnly;Secure
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
#Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' www.google-analytics.com; object-src 'self'"
<FilesMatch "\.html$">
  Header set Content-Type "text/html; charset=utf-8"
</FilesMatch>
</IfModule>

AddType application/font-woff2 .woff2

<IfModule mod_expires.c>
  ExpiresActive on
# Perhaps better to whitelist expires rules? Perhaps.
  ExpiresDefault                          "access plus 1 month"
# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
  ExpiresByType text/cache-manifest       "access plus 0 seconds"
# Your document html
  ExpiresByType text/html                 "access plus 0 seconds"
# Data
  ExpiresByType application/json          "access plus 0 seconds"
  ExpiresByType application/xml           "access plus 0 seconds"
  ExpiresByType text/xml                  "access plus 0 seconds"
# Feed
  ExpiresByType application/atom+xml      "access plus 1 hour"
  ExpiresByType application/rss+xml       "access plus 1 hour"
# Favicon (cannot be renamed)
  ExpiresByType image/x-icon              "access plus 1 week"
# Media: images, video, audio
  ExpiresByType audio/ogg                 "access plus 1 month"
  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType video/mp4                 "access plus 1 month"
  ExpiresByType video/ogg                 "access plus 1 month"
  ExpiresByType video/webm                "access plus 1 month"
# HTC files  (css3pie)
  ExpiresByType text/x-component          "access plus 1 month"
# Webfonts
  ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
  ExpiresByType application/x-font-ttf    "access plus 1 month"
  ExpiresByType application/x-font-woff   "access plus 1 month"
  ExpiresByType font/opentype             "access plus 1 month"
  ExpiresByType image/svg+xml             "access plus 1 month"
# CSS and JavaScript
  ExpiresByType text/css                  "access plus 1 year"
</IfModule>