Krótka odpowiedź
Potwierdź Allowed memory size exhausted w prywatnym logu. Sprawdź kontekst i efektywny limit PHP, zabezpiecz konfigurację, a następnie zmień właściwe ustawienie w granicach hostingu.
Powtórz tę samą czynność na kopii i sprawdź wynik. Nie ustawiaj dowolnie 512M ani nie ponawiaj częściowo wykonanego importu bez kontroli danych.
Błąd pamięci w WordPressie warto zacząć od konkretnego zadania i wpisu w logu. Ten poradnik wyjaśnia, jak odczytać efektywny limit, odróżnić ustawienia PHP od stałych WordPressa i sprawdzić zmianę bez ujawniania konfiguracji strony.
W tym poradniku
Najpierw potwierdź, że chodzi o limit pamięci PHP
Komunikat Allowed memory size exhausted oznacza, że wykonujący się skrypt próbował przekroczyć dopuszczalną ilość pamięci. Zanotuj czynność, adres i czas błędu. Inaczej diagnozuje się otwarcie edytora, inaczej przetwarzanie zdjęcia, a jeszcze inaczej import produktów. Odczytaj odpowiadający temu zdarzeniu wpis w prywatnym logu PHP dostępnym przez hosting.
Nie każdy biały ekran lub przerwany import wynika z memory_limit. Proces może zostać zakończony przez ograniczenia konta, błąd kodu albo brak pamięci całego serwera. Jeżeli log pokazuje inny fatal, podnoszenie limitu nie rozwiąże jego przyczyny. Przy ogólnym komunikacie zacznij od diagnozy błędu 500.
Po przerwanym imporcie sprawdź, czy część rekordów została już zapisana. Ponowienie całego zadania bez tej wiedzy może utworzyć duplikaty. Zachowaj komunikat i wynik procesu, zanim uruchomisz go ponownie. Sam błąd pamięci nie rozstrzyga, które wcześniejsze operacje zakończyły się poprawnie.
Opisz, co użytkownik ma móc zrobić, i podaj adres obecnej strony, jeśli już działa. Możesz dołączyć przykład. Dobierzemy zakres prac do istniejącej witryny, a nową stronę z dedykowanym projektem przygotujemy od 3 500 zł netto. Omów zmianę w WordPressie
Co oznaczają memory_limit i stałe WordPressa
PHP memory_limit ogranicza pamięć dostępną dla wykonania skryptu. Nie jest ilością RAM zarezerwowaną stale dla witryny ani sumą pamięci wszystkich pracujących procesów. Ustawienie 512M nie sprawia więc, że strona od razu zajmie 512 MB. Przy wielu równoległych zadaniach trzeba jednak uwzględnić ich łączne zapotrzebowanie.
WordPress korzysta dodatkowo z WP_MEMORY_LIMIT oraz WP_MAX_MEMORY_LIMIT. Pierwsza stała uczestniczy w ustaleniu limitu podczas uruchamiania aplikacji. Druga jest używana przy próbach podniesienia go dla bardziej wymagających czynności, zależnie od kontekstu. Nie tworzą dwóch osobnych pul pamięci.
W kodzie wp_initial_constants domyślne WP_MEMORY_LIMIT wynosi 40M dla pojedynczej witryny i 64M dla multisite, gdy konfiguracja pozwala zmieniać ustawienie. To wartości domyślne mechanizmu, a nie zalecany budżet współczesnego sklepu. WP_MAX_MEMORY_LIMIT uwzględnia 256M lub wyższą istniejącą wartość, zgodnie z warunkami funkcji.
Niższe WP_MEMORY_LIMIT nie obniża automatycznie wyższego limitu PHP. Dokumentacja wp_raise_memory_limit ujmuje zasadę tak: "Only allows raising the existing limit and prevents lowering it." Jeżeli PHP działa już z 512M, wpisanie 64M w WordPressie nie oznacza ograniczenia tego wykonania do 64M.
Jak sprawdzić ustawienia bez publicznego phpinfo
W panelu otwórz Narzędzia > Stan witryny > Informacja. Rozwiń dane serwera i WordPressa, odszukaj wersję PHP oraz informacje o limitach pamięci. Nazwy pól mogą zależeć od wersji i tłumaczenia. Zapisz wartości potrzebne do diagnozy, zamiast publikować cały raport konfiguracji.
Odczyt wykonany w panelu dotyczy jego kontekstu. Żądanie strony publicznej, obróbka obrazu i polecenie CLI mogą korzystać z innych ustawień lub prób podnoszenia limitu. Gdy problem występuje tylko w konkretnym zadaniu, poproś administratora o sprawdzenie wartości właśnie podczas jego wykonania. Wynik php --ini z terminala nie dowodzi, którego pliku używa PHP obsługujące stronę.
Nie twórz publicznego pliku info.php z phpinfo. Nie jest potrzebny do pierwszego rozpoznania problemu i może ujawnić konfigurację środowiska. Prywatny log hostingu oraz Stan witryny zwykle pozwalają ustalić, jakie dodatkowe dane trzeba zebrać.
Wybierz właściwe miejsce zmiany
Najpierw sprawdź w panelu lub dokumentacji swojego hostingu, gdzie zmienia się parametry PHP dla tej konkretnej domeny. Zapisz poprzednie ustawienie i zabezpiecz plik konfiguracyjny. Nie edytuj równocześnie kilku miejsc, bo później trudno ustalić, które z nich wpływa na wynik.
Jeżeli zmiana dotyczy stałej WordPressa, popraw istniejącą definicję w wp-config.php, przed uruchomieniem WordPressa. Nie dopisuj drugiej definicji tej samej stałej. Wybór wartości uzgodnij z rzeczywistym limitem hostingu i potrzebą zadania. Uszkodzona składnia tego pliku może unieruchomić witrynę, dlatego test na kopii i możliwość cofnięcia zmiany są istotne.
Przykład składni: jeśli hosting dopuszcza 256 MB, a diagnoza uzasadnia taki limit, istniejący wpis może mieć postać `define('WP_MEMORY_LIMIT', '256M');`. Umieść go przed uruchomieniem WordPressa, bez duplikowania stałej. To przykład warunkowy, a nie wartość dla każdej strony. Przy wyższym efektywnym limicie PHP ta stała nie obniży go do 256 MB.
Mechanizm .user.ini dotyczy CGI/FastCGI. Według dokumentacji PHP domyślny czas ponownego odczytu wynosi 300 sekund, ale operator może zmienić go lub wyłączyć obsługę tych plików. Brak natychmiastowego efektu nie oznacza więc automatycznie błędnej wartości.
Dyrektywy PHP w .htaccess zależą od sposobu uruchamiania PHP i ustawień serwera. Samo słowo Apache lub LiteSpeed w ofercie nie wystarczy do wyboru instrukcji. Nie zmieniaj przy okazji limitu uploadu, wielkości POST i czasu wykonania, jeśli diagnozowany błąd ich nie dotyczy.
Dlaczego hosting może odrzucić zmianę
W referencji ustawień PHP memory_limit ma tryb INI_ALL. Nie znaczy to jednak, że użytkownik każdej usługi może dowolnie zwiększyć limit. Znaczenie ma konfiguracja administratora, właściwy plik, handler PHP oraz ograniczenia całego konta.
Od PHP 8.5 dostępne jest dodatkowe ustawienie max_memory_limit, określające górną granicę konfigurowanego memory_limit. Jest ustawiane przy uruchamianiu, więc nie należy traktować go jak kolejnej stałej do dopisania w WordPressie. Ta możliwość nie dotyczy starszych wersji PHP.
Jeśli zadana wartość i efektywny limit nadal się różnią, przekaż hostingowi domenę, kontekst błędu i odczytane ustawienia. Nie ustawiaj wartości -1 jako sposobu obejścia problemu. Brak limitu pojedynczego skryptu nie zapewnia nieograniczonego RAM i może utrudnić ochronę pozostałych procesów.
Zmiana pakietu ma sens po potwierdzeniu ograniczenia oraz potrzeb aplikacji. Sama liczba produktów lub rozmiar bazy nie przesądza o konieczności VPS. Kryteria infrastruktury omawiamy w poradniku wyboru hostingu WordPress.
Jak dobrać wartość i znaleźć kosztowną operację
Nie istnieje jedna liczba odpowiednia dla każdego bloga, edytora i sklepu. Zacznij od pomiaru zadania, które faktycznie zawodzi. Na zabezpieczonej kopii odtwórz podobny zestaw danych, rozmiar obrazów i ustawienia procesu. Mały test nie musi pokazać problemu występującego dopiero przy większej partii.
Query Monitor pomaga rozpoznać zapytania i komponenty, ale nie daje gotowego rankingu pamięci wszystkich wtyczek. Jego dokumentacja profilowania opisuje pomiar odcinka kodu przez odpowiednie znaczniki. Wyniki pamięci są przybliżone. Wskazanie nazwy komponentu w zestawieniu SQL nie jest pomiarem całego RAM zużytego przez tę wtyczkę.
Developer może sprawdzić, czy proces wczytuje cały zbiór naraz, zapętla wywołania lub tworzy wiele dużych obiektów. Przetwarzanie mniejszych partii pomaga tylko wtedy, gdy zadanie prawidłowo zapisuje postęp i bezpiecznie wznawia pracę. Nie rozwiązuj tego przez usunięcie losowych rozszerzeń z działającego sklepu.
Gdy problemem jest czas odpowiedzi, a nie fatal pamięci, przejdź do diagnozy wolnego WordPressa. Zwiększenie memory_limit samo w sobie nie przyspiesza każdej operacji.
Sprawdź efekt i zdecyduj o dalszej pomocy
Po zmianie ponów tę samą czynność na kopii i sprawdź zarówno log, jak i wynik. Przy imporcie porównaj liczbę przetworzonych rekordów z wejściem oraz upewnij się, że nie powstały duplikaty. Przy zdjęciu sprawdź utworzenie potrzebnych wariantów, a przy edytorze zapis i ponowne otwarcie materiału.
Zniknięcie komunikatu po podniesieniu limitu jest informacją o teście, nie dowodem trwałego usunięcia przyczyny. Zachowaj ustawienie wyjściowe, wynik pomiaru i zakres sprawdzonych danych. Gdy zużycie rośnie bez wyjaśnienia albo proces wciąż się przerywa, potrzebna jest analiza kodu lub zasobów serwera.
Możesz zgłosić problem przez kontakt. Wystarczy adres strony i opis czynności, która zawodzi; czas, komunikat i informacja o kopii są pomocne, ale opcjonalne. Naprawa WordPressa obejmuje ustalenie przyczyny awarii. Jeśli potrzebujesz później regularnych aktualizacji i kontroli, sprawdź opiekę nad WordPressem.
Najczęściej zadawane pytania
Jak sprawdzić limit pamięci bez phpinfo?
Czym różnią się WP_MEMORY_LIMIT i WP_MAX_MEMORY_LIMIT?
Czy 512 MB zawsze wystarczy dla WooCommerce?
Dlaczego zmiana w wp-config.php nie działa?
Czy WP_MEMORY_LIMIT równe 64M obniży istniejące 512M?
Dlaczego panel i CLI pokazują różną pamięć?
Co zrobić po przerwanym imporcie produktów?
Kiedy zgłosić problem hostingowi, a kiedy developerowi?
Przypisy i źródła
Źródła zawierają linki do zewnętrznych raportów branżowych, badań i oficjalnych publikacji. Klikając w numerację [X] w treści artykułu, automatycznie zostaniesz przeniesiony do odpowiedniego przypisu.
Potrzebujesz konkretnej funkcji na stronie?
Opisz, co użytkownik ma móc zrobić, i podaj adres obecnej strony, jeśli już działa. Możesz dołączyć przykład. Dobierzemy zakres prac do istniejącej witryny, a nową stronę z dedykowanym projektem przygotujemy od 3 500 zł netto.