Jak mogę zwiększyć linię poleceń memory_limit dla PHP za pomocą MAMP PRO?

13

Edytowałem każdy z nich php.inina moim Macu (przynajmniej wszystkie znalezione przez „locate”) i nadal nie wydaje się, aby zwiększał memory_limitdyrektywę dla PHP.

Używam MAMP PRO i uruchamiam skrypty PHP w terminalu.

Jak to rozwiązać?

Alex Weber
źródło

Odpowiedzi:

15

Zamiast zgadywać, który plik php.ini należy zmienić, uruchom to polecenie, aby zlokalizować plik:

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

Mimo że korzystam z MAMP PRO, domyślnie moje polecenia PHP z linii poleceń nie są wykonywane przy użyciu ich kopii PHP. W moim przypadku napisano, że plik znajduje się w/etc/php.ini

Po zlokalizowaniu pliku postępuj zgodnie z instrukcjami na wszystkich pozostałych odpowiedziach, aby podważyć ustawienie memory_limit:

memory_limit = 256M
Chris Ruppel
źródło
1
Musiałem cp /etc/php.ini.default /etc/php.ini
wcisnąć
4

Ze strony http://drupal.org/node/66187 (drupal może być nieistotny z punktu widzenia twoich potrzeb, ale ich strona miała dobre wyjaśnienie - chciała go dla ciebie zdobyć i wyrazić uznanie)

Domyślnie MAMP ma limit pamięci, którego może używać skrypt ustawiony na 8 MB, co jest wartością domyślną PHP. Patrząc na plik polecany przez PHP php.ini, ten limit pamięci jest zwykle ustawiony na 128 MB. Aby dostosować tę kwotę, otwórz plik php.ini w edytorze tekstu i zmień następujący wiersz (w przybliżeniu w wierszu 232):

limit_pamięci = 8 mln; Maksymalna ilość pamięci, którą skrypt może zużyć (8 MB)

Lokalizacje plików PHP.ini:

/Applications/MAMP/conf/php4/php.ini
/Applications/MAMP/conf/php5/php.ini
W MAMP PRO nie zmieniaj pliku bezpośrednio, ponieważ zostanie on odtworzony przy każdym uruchomieniu serwera. Zamiast tego edytuj odpowiedni szablon (menu Plik> Edytuj szablon> ...).

Nawet przy większych limitach pamięci PHP możesz dostać błędy przekroczenia limitu czasu podczas próby importowania dużych baz danych Drupal do MySQL. Zagadnienia te zostały szczegółowo omówione w innym miejscu w odniesieniu do pamięci podręcznej i pamięci podręcznej widoków. Ogólnie rozwiązaniem jest opróżnienie pamięci podręcznej Drupal przed importowaniem / eksportowaniem baz danych do / z MySQL.

dmg
źródło
Nie ma mowy, te limity wynosiły już 128 MB ...
Alex Weber
hmm masz pro ... zamiast tego spróbuj edytować szablon. Najwyraźniej plik php.ini jest odtwarzany za każdym razem. Instrukcje tutaj: dokumentacja.mamp.info/en/mamp-pro/how-tos/... To działa? Co działasz na serwerze MAMP?
dmg
wciąż nic, każdy pojedynczy plik php.ini, który mogę znaleźć (i szablony) ma 128 MB, ale php -r „phpinfo ();” | grep memory_limit nadal zwraca memory_limit => 8M => 8M
Alex Weber
2

Dla mnie zrobiłem następujące:

Edytuj /Applications/MAMP/conf/php5.4.4/php.ini

i

php.ini.temp

być:

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

Następnie w wyszukiwarce po prostu ustaw php.ini i php.ini.temp tylko do odczytu dla wszystkich użytkowników. W ten sposób MAMP nie może zastąpić go domyślnymi plikami. Uruchom ponownie serwer i sprawdź phpinfo.

BobFlemming
źródło
najprostsze rzeczy pozostają niezauważone! Dzięki za ten pomysł!
Kelly Johnson
1

Po zabawie przez jakiś czas znalazłem coś, co działało dla mnie:

# 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

Tam!

Alex Weber
źródło
1

Szybki i nieprzyzwoity sposób to ustawić jako argument podczas wywoływania skryptu.

To znaczy:

php -d memory_limit=512M myScript.php 
stefgosselin
źródło
0

jeśli używasz Homebrew , twoje ustawienia php są na/usr/local/etc/php/<php version>

Greg
źródło
0

Jeśli masz Opcache w Mamp Pro, nie uzyskasz odpowiedniego ustawienia ... przestań, uruchom ponownie serwer Mamp Pro ...

mattyoung-redhatmatt
źródło