Lors de l'utilisation du gestionnaire de dépendances Composer pour PHP, des erreurs occasionnelles d'erreur surviennent lors de l'utilisation du service EC2 d'Amazon. Un correctif simple existe pour ce problème.
Récemment, en essayant d’installer Symfony2 sur une instance EC2, j’ai trouvé l’erreur suivante:
“Exception non capturée 'ErrorException' avec le message 'proc_open (): fork a échoué - Impossible d'allouer de la mémoire' dans phar…”
Lors du débogage de ce problème, j'ai constaté que beaucoup de personnes rencontraient le même problème. Cela se produit généralement lorsque vous utilisez Composer.phar sur un t1.micro instance. La faible empreinte mémoire de cette instance ne dispose pas de suffisamment de mémoire d'échange pour que Composer.phar puisse s'exécuter correctement.
Augmenter la taille de l'instance
Pour corriger ce problème, modifiez temporairement votre instance en une instance plus grande. Vous pouvez le faire en arrêtant l’instance, puis en sélectionnant Changer le type d'instance du actes menu. Vous devrez peut-être ajuster votre adresse IP et votre sécurité en fonction de la configuration.
Une fois que vous avez augmenté les capacités de votre instance, utilisez composer.phar pour installer vos données PHP. Une fois que vous avez terminé, n'hésitez pas à arrêter l'instance et à rétrograder si vous souhaitez économiser de l'argent. Encore une fois, vous devrez peut-être modifier votre adresse IP et vos paramètres de sécurité.
Augmenter les limites de PHP
Alternativement, vous pouvez augmenter votre PHP memory_limit à au moins 256M. Souvent, cela donnera à PHP suffisamment de mémoire libre pour exécuter composer sans les erreurs.