Informacja reklamowa: serwis zawiera linki afiliacyjne. Możemy otrzymać prowizję po zakupie, ale nie podnosi to ceny dla użytkownika. Ceny, promocje i warunki mogą ulec zmianie.

Jak działa afiliacja?

Parametry hostingu

Limity PHP na hostingu — memory_limit, max_execution_time, upload_max_filesize i post_max_size

Najważniejsze limity PHP określają pamięć, czas wykonywania i rozmiar przesyłanych danych. Sprawdź, czym różnią się od limitów całego konta i jak poprawnie je diagnozować.

Informacja, że hosting obsługuje PHP 8.x, niewiele mówi o tym, jak duże zadanie będzie mogła wykonać aplikacja. Oprócz samej wersji PHP znaczenie mają limity konfiguracyjne, między innymi memory_limit, max_execution_time, upload_max_filesize i post_max_size.

Każdy z nich ogranicza coś innego. Zwiększenie upload_max_filesize nie pomoże, jeśli cały request przekracza post_max_size. Wyższy memory_limit nie rozwiąże natomiast problemu z CPU, I/O albo zbyt małą liczbą procesów PHP.

Limit PHP nie jest tym samym co limit zasobów konta hostingowego. memory_limit ogranicza pamięć dostępną dla wykonania PHP, a limity RAM, CPU, procesów czy I/O mogą być niezależnie egzekwowane przez środowisko hostingowe. Osobnym zasobem jest również pamięć OPcache przeznaczona na skompilowany kod PHP.

Najważniejsze limity PHP — co właściwie oznaczają?

ParametrCo ograniczaTypowy objaw zbyt niskiej wartości
memory_limitPamięć dostępną dla wykonania skryptu PHPBłąd o wyczerpaniu dozwolonej pamięci
max_execution_timeCzas wykonywania skryptu PHPPrzerwanie długiej operacji
upload_max_filesizeRozmiar pojedynczego pliku przesyłanego przez PHPBrak możliwości wgrania większego pliku
post_max_sizeMaksymalny rozmiar całych danych przesyłanych metodą POSTŻądanie z uploadem lub dużym formularzem przekracza dopuszczalny rozmiar

Te wartości są ze sobą częściowo powiązane, ale nie należy traktować ich jak jednego wspólnego „limitu PHP”. Przy diagnozie najpierw trzeba ustalić, która część operacji faktycznie się nie mieści.

Co ogranicza memory_limit?

memory_limit określa maksymalną ilość pamięci, jaką PHP może przydzielić podczas wykonywania skryptu. Limit ma chronić serwer między innymi przed pojedynczym procesem zużywającym nadmierną ilość pamięci.

Przekroczenie wartości zwykle kończy się komunikatem podobnym do:

Allowed memory size of ... bytes exhausted

Taki błąd oznacza, że PHP próbowało przydzielić więcej pamięci, niż pozwalała jego konfiguracja. Nie mówi jednak jeszcze, dlaczego aplikacja potrzebowała tak dużo RAM.

Przyczyną może być duża operacja, ale równie dobrze nieefektywna wtyczka, zapytanie pobierające zbyt dużo danych, obróbka dużego obrazu albo błąd powodujący niekontrolowany wzrost wykorzystania pamięci. Podniesienie limitu może więc usunąć objaw, ale nie zawsze usuwa jego przyczynę.

memory_limit a WordPress

WordPress ma dodatkowo własne stałe, między innymi WP_MEMORY_LIMIT i WP_MAX_MEMORY_LIMIT. WP_MEMORY_LIMIT określa docelowy limit używany przez WordPress w zwykłym działaniu, a WP_MAX_MEMORY_LIMIT może być używany dla operacji administracyjnych wymagających większego budżetu pamięci.

Nie pozwalają jednak ominąć ograniczenia narzuconego wyżej przez konfigurację PHP lub hosting. Jeśli serwer nie pozwala aplikacji zwiększyć limitu, wpisanie większej liczby w wp-config.php nie tworzy dodatkowej pamięci.

Dlatego przy błędzie pamięci warto sprawdzić zarówno wartość widoczną w WordPressie, jak i rzeczywistą konfigurację PHP działającą dla strony.

Co oznacza max_execution_time?

max_execution_time ustala maksymalny czas wykonywania skryptu PHP. W typowej konfiguracji webowej PHP ma dzięki temu przerwać zadanie, które działa zbyt długo.

Ten limit może mieć znaczenie między innymi przy:

  • dużych importach i eksportach,
  • generowaniu raportów,
  • przetwarzaniu wielu produktów,
  • operacjach wykonywanych przez wtyczki,
  • części migracji i zadań administracyjnych.

Nie należy jednak interpretować go jako jedynego „zegara” całego requestu. Dokumentacja PHP zwraca uwagę, że sposób liczenia czasu zależy od platformy i sposobu zbudowania PHP. Dodatkowo własne timeouty mogą mieć serwer WWW, reverse proxy, PHP-FPM albo infrastruktura operatora.

Dlatego ustawienie max_execution_time=300 nie gwarantuje, że każda operacja HTTP będzie mogła działać dokładnie pięć minut. Inna warstwa może zakończyć request wcześniej.

Czy wystarczy stale zwiększać max_execution_time?

Nie. Jeśli zwykła operacja aplikacji regularnie potrzebuje bardzo długiego czasu, warto sprawdzić, dlaczego tak się dzieje.

Przy większych zadaniach lepszym rozwiązaniem może być podział pracy na mniejsze partie, kolejka zadań albo uruchamianie operacji przez cron zamiast utrzymywania jednego długiego żądania z przeglądarki.

Do przygotowania harmonogramu możesz użyć generatora cron. Sam cron nie usuwa jednak ograniczeń źle zaprojektowanego zadania — zmienia przede wszystkim sposób i moment jego uruchamiania.

upload_max_filesize — limit pojedynczego pliku

upload_max_filesize określa maksymalny rozmiar pojedynczego pliku przesyłanego przez mechanizm uploadu PHP.

Jeżeli limit wynosi przykładowo 32 MB, próba przesłania pojedynczego pliku większego niż ta wartość przez formularz obsługiwany przez PHP nie powiedzie się, nawet jeśli na dysku hostingu zostało wiele gigabajtów wolnego miejsca.

To ważne rozróżnienie: ilość wolnej przestrzeni i maksymalny rozmiar pojedynczego uploadu są dwoma różnymi parametrami.

WordPress pokazuje informacje związane z uploadem w sekcji informacji o stanie witryny. Może tam prezentować między innymi maksymalny rozmiar pojedynczego pliku oraz efektywny limit uploadu.

post_max_size — dlaczego upload_max_filesize to nie wszystko?

post_max_size określa maksymalny rozmiar danych przesyłanych w całym żądaniu POST. Obejmuje to nie tylko sam plik, ale również pozostałe dane formularza przesyłane w tym samym żądaniu.

Dlatego dla uploadów post_max_size powinno pozwalać na przesłanie co najmniej danych mieszczących plik dopuszczony przez upload_max_filesize. Dokumentacja PHP zaleca, aby przy dużych uploadach post_max_size było większe od upload_max_filesize.

Przykładowa konfiguracja:

upload_max_filesize = 64M
post_max_size = 72M

Przy dużych requestach trzeba uwzględnić również memory_limit. Dokumentacja PHP zaleca, aby był on większy od post_max_size, choć rzeczywiste zapotrzebowanie aplikacji na pamięć zależy od sposobu przetwarzania danych.

Taka konfiguracja nie oznacza, że każda aplikacja będzie przyjmowała pliki 64 MB. Może istnieć dodatkowy limit w WordPressie, wtyczce, serwerze WWW albo warstwie proxy.

Jeśli całe dane POST przekroczą post_max_size, PHP może nie wypełnić standardowo tablic $_POST i $_FILES. Dla aplikacji może to wyglądać inaczej niż zwykły błąd „plik jest za duży”, dlatego ten parametr warto sprawdzać osobno.

upload_max_filesize i post_max_size — przykład praktyczny

Załóżmy, że konfiguracja wygląda tak:

ParametrWartość
upload_max_filesize128 MB
post_max_size32 MB

Podniesienie samego limitu pojedynczego pliku do 128 MB nie daje w takim układzie możliwości przesłania 128 MB przez zwykły formularz POST. Całe żądanie nadal zatrzyma niższy post_max_size.

Dlatego wartości trzeba analizować razem, a nie wybierać największej liczby widocznej w panelu.

A co z max_input_time?

Przy problemach z uploadem może mieć znaczenie również max_input_time. Określa on czas, jaki PHP może przeznaczyć na przetwarzanie danych wejściowych przed rozpoczęciem właściwego wykonywania skryptu.

Na wolnym łączu bardzo duży upload może więc napotkać ograniczenie czasu niezależne od późniejszego max_execution_time.

Nie trzeba jednak traktować max_input_time jako kolejnego parametru, który zawsze należy zwiększać. Ma znaczenie przede wszystkim wtedy, gdy problem rzeczywiście dotyczy przesyłania lub parsowania dużego requestu.

Jak sprawdzić limity PHP w WordPressie?

Najbezpieczniej zacząć bez tworzenia dodatkowych skryptów diagnostycznych. W WordPressie wejdź do:

Narzędzia → Stan witryny → Informacje.

W sekcjach dotyczących serwera i obsługi multimediów WordPress pokazuje między innymi:

  • wersję PHP,
  • PHP memory limit,
  • PHP time limit,
  • maksymalny rozmiar uploadu,
  • maksymalny rozmiar danych POST,
  • maksymalny czas danych wejściowych.

To dobry punkt startowy, ponieważ widzisz parametry środowiska używanego przez działającą instalację WordPressa.

Jak sprawdzić limity PHP poza WordPressem?

Wiele paneli hostingowych pokazuje konfigurację PHP osobno dla domeny lub wybranej wersji interpretera. Nazwa sekcji zależy od panelu i operatora, dlatego nie ma jednej ścieżki wspólnej dla wszystkich hostingów. Osobno opisujemy zmianę wersji PHP z backupem, testem i rollbackiem.

Przy dostępie SSH można również użyć:

php -i | grep -E 'memory_limit|max_execution_time|upload_max_filesize|post_max_size|max_input_time'

Trzeba jednak uważać na jeden ważny szczegół: wynik polecenia php -i dotyczy PHP uruchomionego w CLI. Strona WWW może korzystać z innej wersji PHP, innego pliku konfiguracyjnego albo PHP-FPM z odrębnymi ustawieniami.

CLI jest więc przydatne diagnostycznie, ale nie powinno być automatycznie traktowane jako dowód konfiguracji PHP używanej przez stronę.

Czy warto używać phpinfo()?

Funkcja phpinfo() potrafi pokazać bardzo dużo informacji o aktywnej konfiguracji PHP, ale publicznie dostępny plik diagnostyczny ujawnia również szczegóły środowiska, których nie warto bez potrzeby wystawiać w internecie.

Jeśli operator zaleca użycie takiego pliku diagnostycznego, powinien być dostępny możliwie krótko i zostać usunięty po sprawdzeniu. W typowym WordPressie wygodniej zacząć od informacji w panelu hostingu i Stanu witryny.

Dlaczego zmiana php.ini nie zawsze działa?

Nie każda dyrektywa PHP może być zmieniana w każdym miejscu. PHP określa tryb zmienności poszczególnych ustawień, a hosting może dodatkowo ograniczyć użytkownikowi możliwość ich modyfikacji.

W PHP 8.5 pojawiła się dodatkowo dyrektywa max_memory_limit, którą administrator może ustawić jako nadrzędny pułap dla memory_limit. Jeśli memory_limit zostanie ustawiony powyżej tej wartości, PHP ograniczy go do max_memory_limit. Na hostingu oznacza to, że nawet dyrektywa możliwa do zmiany przez aplikację może mieć dodatkowy limit narzucony wyżej przez administratora.

Przykładowo memory_limit i max_execution_time mają inne możliwości konfiguracji niż upload_max_filesize oraz post_max_size. Na hostingu współdzielonym ostateczny sposób zmiany może prowadzić przez panel operatora, plik .user.ini, lokalny php.ini albo ustawienia zarządzane wyłącznie przez administratora.

Nie warto kopiować przypadkowych wpisów do .htaccess tylko dlatego, że zadziałały na innym serwerze. Sposób konfiguracji zależy między innymi od SAPI i konfiguracji PHP używanej przez hosting.

Zmieniłem limit, ale WordPress nadal pokazuje starą wartość

Najpierw sprawdź, czy edytujesz konfigurację używaną przez właściwą domenę i właściwą wersję PHP.

Na jednym koncie mogą jednocześnie istnieć:

  • różne wersje PHP dla różnych domen,
  • osobna konfiguracja CLI,
  • PHP-FPM dla stron WWW,
  • lokalne pliki konfiguracyjne,
  • wartości wymuszane przez hosting.

Znaczenie może mieć również cache konfiguracji. PHP obsługuje między innymi pliki .user.ini, których zawartość może być ponownie odczytywana zgodnie z ustawionym przez serwer interwałem.

Jeśli po zmianie panel i aplikacja nadal pokazują starą wartość, bezpieczniej ustalić z dokumentacją operatora, który mechanizm konfiguracji jest właściwy, niż dodawać tę samą dyrektywę jednocześnie w kilku miejscach.

Jakie limity PHP są dobre dla WordPressa?

Nie ma jednego zestawu wartości właściwego dla każdej strony. Prosty WordPress, sklep WooCommerce, importer produktów i serwis obrabiający duże zdjęcia mogą potrzebować zupełnie innych ustawień.

Dlatego zamiast zaczynać od pytania „czy 256 MB RAM dla PHP jest dobre?”, lepiej ustalić:

  • jaką operację próbujesz wykonać,
  • który limit faktycznie został osiągnięty,
  • czy problem występuje stale czy tylko przy jednym zadaniu,
  • czy po podniesieniu limitu zużycie nadal rośnie,
  • czy ograniczenie pochodzi z PHP czy z całego konta hostingowego.

Duży limit nie jest sam w sobie dowodem wydajnego hostingu. Oznacza jedynie, że dana operacja PHP może otrzymać większy budżet w określonym obszarze.

Limity PHP a limity całego hostingu

To rozróżnienie jest szczególnie ważne przy porównywaniu ofert.

memory_limit=512M nie oznacza, że konto ma gwarantowane 512 MB dodatkowego RAM dla dowolnej liczby procesów. Podobnie wysoki max_execution_time nie oznacza, że hosting pozwoli pojedynczemu zadaniu bez ograniczeń wykorzystywać CPU.

Środowisko może niezależnie ograniczać:

  • CPU,
  • RAM konta,
  • liczbę procesów,
  • PHP workers,
  • I/O i IOPS,
  • entry processes,
  • czas działania procesów po stronie infrastruktury.

Szersze omówienie tych parametrów znajdziesz w poradniku o limitach CPU, RAM, procesów i I/O na hostingu.

Jeżeli masz dane z panelu działającego konta, możesz też użyć diagnostyki zasobów hostingu, aby rozdzielić limity PHP od innych ograniczeń środowiska.

Jak sprawdzić limity przed zakupem hostingu?

Nie każdy operator publikuje wszystkie parametry PHP w tabeli oferty. Brak informacji nie powinien być interpretowany jako brak limitu.

Przed zakupem warto ustalić przynajmniej:

  • jakie wartości mają memory_limit, max_execution_time, upload_max_filesize i post_max_size,
  • czy użytkownik może je zmieniać samodzielnie,
  • jaki jest maksymalny dopuszczalny zakres zmian,
  • czy ustawienia są wspólne dla konta czy konfigurowane per domena,
  • czy limity różnią się między wersjami PHP lub trybami pracy.

Jeśli masz już konkretny pakiet na oku, możesz użyć narzędzia Sprawdź plan hostingowy przed zakupem. Parametry, których nie udało się potwierdzić, powinny pozostać brakami danych zamiast być zgadywane.

Co zrobić, gdy aplikacja zgłasza problem z limitem PHP?

  1. Zidentyfikuj konkretny limit. Nie zwiększaj wszystkich parametrów naraz.
  2. Sprawdź aktywną wartość w aplikacji lub konfiguracji właściwej dla strony WWW.
  3. Ustal, co wykonywała aplikacja w momencie błędu.
  4. Sprawdź, czy hosting pozwala zmienić parametr i gdzie należy to zrobić.
  5. Po zmianie ponów tę samą operację i sprawdź, czy problem zniknął.
  6. Jeśli zużycie nadal rośnie, szukaj przyczyny w aplikacji zamiast bez końca podnosić limit.

W przypadku wolnego WordPressa sama zmiana limitów PHP często nie wystarczy. Warto wtedy przejść również przez diagnostykę z poradnika Dlaczego WordPress działa wolno?.

Najważniejsze wnioski

  • memory_limit, max_execution_time, upload_max_filesize i post_max_size dotyczą różnych ograniczeń;
  • przy uploadzie trzeba analizować razem limit pojedynczego pliku i całego requestu POST;
  • przy dużych requestach znaczenie ma również relacja memory_limit do post_max_size;
  • w PHP 8.5 administrator może dodatkowo ograniczyć memory_limit przez max_memory_limit;
  • wysoki limit PHP nie jest równoznaczny z wysokim limitem zasobów całego konta;
  • wartości z PHP CLI mogą różnić się od konfiguracji używanej przez stronę WWW;
  • WordPress pokazuje podstawowe parametry PHP w Stanie witryny;
  • brak parametru w tabeli hostingu nie oznacza, że ograniczenie nie istnieje;
  • podnoszenie limitów bez ustalenia przyczyny może jedynie przesunąć moment wystąpienia problemu.

Źródła

  1. PHP Manual — Description of core php.ini directives — memory_limit, max_memory_limit, post_max_size, uploady i podstawowe dyrektywy PHP.
  2. PHP Manual — Runtime Configuration — max_execution_time, max_input_time oraz uwagi o dodatkowych timeoutach serwera WWW.
  3. PHP Manual — Common Pitfalls — zależności między limitami uploadu, czasu i pamięci.
  4. PHP Manual — POST method uploads — konfiguracja uploadów PHP.
  5. WordPress Documentation — Site Health screen — informacje o parametrach PHP i uploadu widoczne w WordPressie.
  6. WordPress Developer Resources — PHP Optimization — limity pamięci, czasu wykonywania i uploadu w WordPressie.
  7. WordPress Developer Resources — wp-config.php — WP_MEMORY_LIMIT i ograniczenia zwiększania pamięci.

Źródła

  1. PHP Manual — Description of core php.ini directives — dostęp: 29.09.2026
  2. PHP Manual — Runtime Configuration — dostęp: 29.09.2026
  3. PHP Manual — Common Pitfalls — dostęp: 29.09.2026
  4. PHP Manual — POST method uploads — dostęp: 29.09.2026
  5. WordPress Documentation — Site Health screen — dostęp: 29.09.2026
  6. WordPress Developer Resources — PHP Optimization — dostęp: 29.09.2026
  7. WordPress Developer Resources — wp-config.php — dostęp: 29.09.2026