Znajomy poprosił mnie o pomoc przy zainstalowaniu WordPressa. Okazało się, że ma już domenę i hosting. W jednej z dwóch firm hostingowych, na serwerach których nie przepadam pracować… I szybko przypomniało mi się dlaczego. A przypomniał mi o tym błąd o Fatal error: Out of memory…

Limit pamięci PHP na serwerze/hostingu

Po zainstalowaniu WordPressa postanowiłem dodać jedną wtyczkę, która ukrywa naszą stronę dla odwiedzających, a my(zalogowani) w tym czasie możemy sobie spokojnie pracować nad rozwijaniem strony. Po instalacji tej pojedynczej wtyczki, hosting powiedział, że ma już dość i więcej nie udźwignie. Przekroczony został limit pamięci PHP i moim oczom ukazał się błąd:

Błąd ten oznacza, że skrypt, który się właśnie wykonywał, wykorzystał całą dostępną pamięć która została mu przydzielona. Niestety w tym przypadku nie mogłem nawet zalogować się do panelu administracyjnego WordPressa.

Jak sprawdzić aktualny limit pamięci PHP?

Jeśli używasz WordPressa powyżej 5.2(a mam nadzieję, że tak!), to limit pamięci PHP sprawdzisz w panelu administracyjnym. Jeśli oczywiście możesz się do niego zalogować…

Z menu głównego wybieramy Narzędzia, a następnie opcję Stan witryny. Przechodzimy do zakładki Informacja i szukamy informacji o naszym serwerze.

Jeśli masz błąd na stronie i nie możesz się zalogować do panelu administracyjnego, możesz utworzyć prosty skrypt, który wyświetli potrzebne informacje. Przykładowo tworzysz plik test.php i umieszczasz go przez FTP w głównym katalogu strony. W treści pliku możesz zastosować jeden z poniższych kodów:

<?php phpinfo(); ?>

lub

<?php echo ini_get("memory_limit"); ?>

Następnie wywołujesz skrypt, np. twojadomena.pl/test.php poprzez wpisanie adresu w przeglądarce. Pierwszy kod wyświetli wszystkie informacje o konfiguracji PHP na twoim serwerze. Jeśli w pliku umieściłeś drugi kod, wyświetli on tylko informację o wartości limitu pamięci PHP.

Jak rozwiązać problem z limitem pamięci PHP?

Z mojego „testowego pliku” dowiedziałem się, że limit pamięci PHP dla hostingu na którym pracuje to 256MB. Nie tak znowu mało. A jednak błąd występował na czystym WordPressie z jedną wtyczką.

Problem rozwiązałem bardzo prosto, czyli tak lubię. Zwiększyłem limit pamięci PHP dodając jedną linijkę kodu do pliku wp-config.php:

define('WP_MEMORY_LIMIT', '320M');

Powyższy wpis zwiększa limit pamięci PHP do 320 MB. Myślę, że w tym przypadku to problem tego konkretnego hostingu. Do tej pory nie spotkałem się z tym błędem u innych hostingodawców, choć najczęściej limit pamięci jest ustawiony właśnie na 256 MB.

Jeśli zwiększenie limitu z jakiś względów nie pomogło, cofnij ostatnią zmianę, którą zrobiłeś na stronie. Jeśli to było np. dodanie wtyczki, to zaloguj się na konto FTP i usuń cały katalog wtyczki. Powinno pomóc w szybkim postawieniu strony na nogi i da trochę czasu na zastanowienie się co dalej…

Innym rozwiązaniem tego problemu może być edycja pliku .htaccess. Plik .htaccess jest plikiem konfiguracyjnym używanym przez serwer. Możemy w nim dodawać własne reguły dotyczące zachowania serwera, np. ustawić przekierowania, założyć hasło na katalogi czy zmienić limit pamięci PHP. Możesz to zrobić za pomocą jednego z dwóch poleceń:

php_value memory_limit 256M
RLimitMEM max

Pierwszy sposób to zwiększenie limitu pamięci PHP do określonej wartości w MB. Drugie polecenie ustawia maksymalną dostępną na serwerze wartość limitu pamięci. Jeśli pracujesz na serwerze dedykowanym, a nie hostingu współdzielonym, możesz po prostu edytować plik ini.php.

Jeśli powyższe sposoby zawiodły, jedyne co pozostaje, to skontaktować się z pomocą techniczną naszego hostingodawcy.

Photo by Irina Babina on Unsplash

Napisz komentarz