Comment puis-je augmenter la ligne de commande memory_limit pour PHP avec MAMP PRO?


13

J'ai édité chaque single php.inisur mon Mac (au moins tous ceux trouvés par "Locate") et je n'arrive toujours pas à augmenter la memory_limitdirective pour PHP.

J'utilise MAMP PRO et j'exécute des scripts PHP dans le terminal.

Comment résoudre ça?

Réponses:


15

Au lieu de deviner quel php.ini vous devez modifier, exécutez cette commande pour localiser le fichier:

php -r 'phpinfo();' | grep 'php.ini'

Même si j'utilise MAMP PRO, par défaut mes commandes PHP en ligne de commande ne sont pas exécutées en utilisant leur copie de PHP. Dans mon cas, le fichier se trouve à l'adresse/etc/php.ini

Une fois que vous avez localisé le fichier, suivez les instructions sur toutes les autres réponses pour augmenter le paramètre memory_limit:

memory_limit = 256M

1
Je devais poing cp le fichier par défaut:cp /etc/php.ini.default /etc/php.ini
deweydb

4

De http://drupal.org/node/66187 (drupal peut ne pas être pertinent pour vos besoins, mais leur site avait une bonne explication - je voulais le trouver pour vous et leur donner du crédit)

Par défaut, MAMP a la limite de mémoire qu'un script peut utiliser définie à 8 Mo, qui est la valeur par défaut de PHP. En regardant le fichier PHP recommandé par php.ini, cette limite de mémoire est normalement fixée à 128 Mo. Pour ajuster ce montant, ouvrez le fichier php.ini dans un éditeur de texte et modifiez la ligne suivante (approximativement à la ligne 232):

memory_limit = 8M; Quantité maximale de mémoire qu'un script peut consommer (8 Mo)

Emplacements des fichiers PHP.ini:

/Applications/MAMP/conf/php4/php.ini
/Applications/MAMP/conf/php5/php.ini
Dans MAMP PRO, ne modifiez pas directement le fichier car il sera recréé à chaque démarrage du serveur. Veuillez modifier le modèle approprié (menu Fichier> Modifier le modèle> ...) à la place.

Même avec des limites de mémoire PHP plus importantes, vous pouvez obtenir des erreurs de délai d'attente lors de l'importation de grandes bases de données Drupal dans MySQL. Ces problèmes sont discutés en détail ailleurs en ce qui concerne le cache et le cache des vues. Généralement, la solution consiste à vider le cache Drupal avant d'importer / exporter des bases de données vers / depuis MySQL.


Non, ces limites étaient déjà à 128 Mo ...
Alex Weber

hmm. vous avez pro ... essayez de modifier le modèle à la place. Apparemment, le fichier php.ini est recréé à chaque fois. Instructions ici: documentation.mamp.info/en/mamp-pro/how-tos/… Ça marche? Que courez-vous sur le serveur Mamp?
dmg

toujours rien, chaque fichier php.ini que je peux trouver (et les modèles aussi) sont tous avec 128 Mo mais php -r "phpinfo ();" | grep memory_limit renvoie toujours memory_limit => 8M => 8M
Alex Weber

2

Pour moi, j'ai fait ce qui suit:

Modifiez le /Applications/MAMP/conf/php5.4.4/php.ini

et

php.ini.temp

être:

memory_limit = 128M      ; Maximum amount of memory a script may consume (8MB)

Ensuite, dans le Finder, faites simplement php.ini et php.ini.temp en lecture seule pour tous les utilisateurs. De cette façon, MAMP ne peut pas le remplacer par des fichiers par défaut. Redémarrez le serveur et vérifiez votre phpinfo.


les choses les plus simples passent inaperçues! Merci pour cette idée!
kelly johnson

1

Après avoir joué pendant un moment, j'ai trouvé quelque chose qui fonctionnait pour moi:

# backup original php.ini
sudo mv /usr/bin/php /usr/bin/php.bkp

# create a symlink from MAMP's php.ini in /usr/bin directory
# (I use 5.2, change the path for 5.3)
sudo ln -s /Applications/MAMP/bin/php/php5.2.17/bin/php /usr/bin/php

Là!


1

Un moyen rapide et sale de le faire est de le définir comme argument lors de l'appel de votre script.

C'est à dire:

php -d memory_limit=512M myScript.php 

0

si vous utilisez Homebrew , vos paramètres php sont à/usr/local/etc/php/<php version>


0

Si vous avez Opcache dans Mamp Pro, vous n'obtiendrez pas le paramètre approprié ... arrêtez-le, redémarrez votre serveur Mamp Pro ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.