Configuration requise pour Magento 2.x PHP memory_limit

11

J'ai remarqué que le manuel de Magento 2.1 recommande memory_limit=2Gdansphp.ini . C'est une quantité folle de mémoire, cette mémoire n'est-elle pas autorisée par requête HTTP? Je doute qu'il existe un fournisseur d'hébergement qui fournisse cette quantité de mémoire pour les scripts PHP, et qui rend certainement Magento non viable pour l'hébergement partagé.

Est-ce peut-être un montant pour la configuration et la migration? Ce montant est-il vraiment nécessaire pour la production?

J'ai aussi trouvé dans la documentation:

Set the PHP memory limit.
Our detailed recommendations are: 
Compiling code or deploying static assets, 756M 
Installing and updating Magento components from Magento Marketplace, 2G 
Testing, 2G

Il ne mentionne pas de recommandations de production. Qu'est-ce qui est recommandé pour la production?

MarkE
la source

Réponses:

8

Comme l'explique l'extrait de documentation que vous avez trouvé, 2Gest la limite de mémoire pour couvrir tous les cas d'utilisation possibles. Certaines opérations (en particulier les opérations en ligne de commande comme la configuration, les tests et la compilation) peuvent prendre une quantité importante de mémoire en fonction de la taille et de la complexité de votre installation.

Quelques points à noter:

  1. memory_limitest la quantité maximale de mémoire qu'une requête PHP donnée est autorisée à prendre avant de se terminer. Ce n'est pas la quantité totale de mémoire que chaque requête prendra. En pratique, la plupart des demandes frontales prendront beaucoup moins de mémoire (probablement 60 Mo ou moins pour la plupart des pages CMS, catégories, produits), certaines valeurs aberrantes (paiement) prenant plusieurs fois plus selon les intégrations, la personnalisation, etc.
  2. Certains serveurs vous permettent de définir des limites de mémoire différentes pour les requêtes Web par rapport à la ligne de commande. Si tel est le cas, vous devez avoir une limite CLI de 2Get une limite Web de 768Mou moins.
  3. Magento lui - même tente d'imposer une limite de 768m par défaut sur-la-carte, via règles .htaccesset pub/.htaccess: php_value memory_limit 756M, et .user.ini:memory_limit = 756M
  4. La page `` exigences de pile technologique ' ' que vous avez probablement vue concernant 2 Go minimum parle de la mémoire totale du système , pas de la limite de mémoire PHP. Si vous essayez d'exécuter Magento2 sur un serveur privé virtuel avec moins de 2 Go de RAM (y compris l'échange), vous allez avoir un mauvais moment.
  5. Un environnement dédié sera toujours meilleur que l'hébergement partagé, mais Magento2 fonctionne sur l'hébergement partagé. Magento a beaucoup travaillé avec certains fournisseurs d'hébergement courants, y compris GoDaddy, pour faire des installations en un clic une réalité. Il existe également des hôtes spécialisés Magento comme Nexcess qui offrent un niveau supérieur de service partagé pour quelques dollars de plus.
Ryan Hoerr
la source
Concernant le point 4: la citation de l'OP du document "Paramètres PHP requis", pas les exigences de la pile technologique. devdocs.magento.com/guides/v2.1/install-gde/prereq/… Ils recommandent de tester et d'installer avec une limite de mémoire de 2 Go.
indefinitedevil
Je voudrais ajouter .user.inià la liste des fichiers que Magento utilise / crée pour appliquer cette limite. À la fois dans la racine et dans pub/.
Bart Friederichs
Un environnement 2G recommandé est sensiblement différent de 2G par demande! Je ne peux pas imaginer que ce dernier soit viable pour un site très fréquenté. Et même si les opérations PHP en ligne de commande consomment 2G, c'est du code extrêmement inefficace.
MarkE