Wie kann ich die Befehlszeile memory_limit für PHP mit MAMP PRO erhöhen?

13

Ich habe jeden einzelnen php.iniauf meinem Mac bearbeitet (zumindest alle, die mit "locate" gefunden wurden) und kann die memory_limitDirektive für PHP immer noch nicht erhöhen .

Ich benutze MAMP PRO und starte PHP-Skripte im Terminal.

Wie kann man das lösen?

Alex Weber
quelle

Antworten:

15

Anstatt zu erraten, welche php.ini Sie ändern müssen, führen Sie diesen Befehl aus, um die Datei zu suchen:

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

Obwohl ich MAMP PRO verwende, werden meine Befehlszeilen-PHP-Befehle standardmäßig nicht mit ihrer PHP-Kopie ausgeführt. In meinem Fall heißt es, dass die Datei unter gefunden wird/etc/php.ini

Befolgen Sie nach dem Auffinden der Datei die Anweisungen in allen anderen Antworten, um die Einstellung memory_limit zu ändern:

memory_limit = 256M
Chris Ruppel
quelle
1
Ich musste die Standard-Datei cp Faust:cp /etc/php.ini.default /etc/php.ini
Deweydb
4

Von http://drupal.org/node/66187 (Drupal ist möglicherweise für Ihre Bedürfnisse irrelevant, aber die Website hatte eine gute Erklärung - wollte es für Sie beschaffen und sie würdigen)

Standardmäßig hat MAMP das Speicherlimit, das ein Skript verwenden kann, auf 8 MB, was der PHP-Standard ist. In der von PHP empfohlenen Datei php.ini liegt dieses Speicherlimit normalerweise bei 128 MB. Um diesen Wert anzupassen, öffnen Sie die Datei php.ini in einem Texteditor und ändern Sie die folgende Zeile (ungefähr in Zeile 232):

memory_limit = 8M; Maximaler Speicherbedarf eines Skripts (8 MB)

Speicherorte der PHP.ini-Datei:

/Applications/MAMP/conf/php4/php.ini
/Applications/MAMP/conf/php5/php.ini Ändern Sie
in MAMP PRO die Datei nicht direkt, da sie bei jedem Serverstart neu erstellt wird. Bitte bearbeiten Sie stattdessen die entsprechende Vorlage (Menü Datei> Vorlage bearbeiten> ...).

Selbst bei größeren PHP-Speichergrenzen kann es zu Timeout-Fehlern kommen, wenn Sie versuchen, große Drupal-Datenbanken in MySQL zu importieren. Diese Probleme werden an anderer Stelle im Hinblick auf den Cache und den Ansichtscache ausführlich erörtert. Im Allgemeinen besteht die Lösung darin, den Drupal-Cache vor dem Import / Export von Datenbanken nach / von MySQL zu leeren.

dmg
quelle
Nein, diese Limits lagen bereits bei 128 MB ...
Alex Weber
hmm. Versuchen Sie stattdessen, die Vorlage zu bearbeiten. Anscheinend wird die Datei php.ini jedes Mal neu erstellt. Anleitung hier: documentation.mamp.info/en/mamp-pro/how-tos/… Funktioniert das? Was läuft auf dem mamp Server?
dmg
Immer noch nichts. Jede einzelne php.ini-Datei (und auch Vorlagen) hat 128 MB, aber php -r "phpinfo ()". | grep memory_limit liefert immer noch memory_limit => 8M => 8M
Alex Weber
2

Für mich habe ich Folgendes getan:

Bearbeiten Sie die /Applications/MAMP/conf/php5.4.4/php.ini

und

php.ini.temp

sein:

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

Dann machen Sie im Finder einfach die php.ini und php.ini.temp nur für alle Benutzer lesbar. Auf diese Weise kann MAMP es nicht mit Standarddateien überschreiben. Starten Sie den Server neu und überprüfen Sie Ihre PHP-Informationen.

BobFlemming
quelle
die einfachsten Dinge bleiben unbemerkt! Danke für diese Idee!
Kelly Johnson
1

Nachdem ich eine Weile rumgespielt hatte, fand ich etwas, das für mich funktionierte:

# 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

Dort!

Alex Weber
quelle
1

Ein schneller und unsauberer Weg, dies zu tun, besteht darin, es beim Aufruf Ihres Skripts als Argument zu setzen.

Dh:

php -d memory_limit=512M myScript.php 
Stefgosselin
quelle
0

Wenn Sie Homebrew verwenden , sind Ihre PHP-Einstellungen bei/usr/local/etc/php/<php version>

Greg
quelle
0

Wenn Sie Opcache in Mamp Pro aktiviert haben, erhalten Sie nicht die richtigen Einstellungen. Beenden Sie den Vorgang, starten Sie den Mamp Pro-Server neu.

mattyoung-redhatmatt
quelle