Edytowałem każdy z nich php.ini
na moim Macu (przynajmniej wszystkie znalezione przez „locate”) i nadal nie wydaje się, aby zwiększał memory_limit
dyrektywę dla PHP.
Używam MAMP PRO i uruchamiam skrypty PHP w terminalu.
Jak to rozwiązać?
Edytowałem każdy z nich php.ini
na moim Macu (przynajmniej wszystkie znalezione przez „locate”) i nadal nie wydaje się, aby zwiększał memory_limit
dyrektywę dla PHP.
Używam MAMP PRO i uruchamiam skrypty PHP w terminalu.
Jak to rozwiązać?
Odpowiedzi:
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
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.
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.
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!
Szybki i nieprzyzwoity sposób to ustawić jako argument podczas wywoływania skryptu.
To znaczy:
php -d memory_limit=512M myScript.php
Jeśli masz Opcache w Mamp Pro, nie uzyskasz odpowiedniego ustawienia ... przestań, uruchom ponownie serwer Mamp Pro ...
cp /etc/php.ini.default /etc/php.ini