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ć?

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

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.


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.


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!


1

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

To znaczy:

php -d memory_limit=512M myScript.php 


0

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.