php.ini na hostingu - które ustawienia można zmienić

memory_limit, upload_max_filesize, max_execution_time i reszta - które ustawienia PHP zmienisz sam w panelu hostingu i jakie wartości mają sens.

Na hostingu współdzielonym nie edytujesz głównego pliku php.ini serwera - dostajesz własne nadpisania dla swojej domeny, klikane w panelu. Najczęściej zmieniane ustawienia to memory_limit (pamięć skryptu), upload_max_filesize i post_max_size (rozmiar wgrywanych plików), max_execution_time (czas działania skryptu) oraz max_input_vars (liczba pól formularza). Zmiana zaczyna działać od kolejnego żądania.

Poniżej: co dokładnie robi każda dyrektywa i jakie wartości mają sens, ściąga „objaw komunikatu → ustawienie do zmiany", trzy sposoby wprowadzania zmian (panel, plik, wp-config) oraz lista rzeczy, których nie należy wykręcać, choć internet często to doradza.

Czym jest php.ini i gdzie go zmieniasz

php.ini to plik konfiguracyjny PHP - języka, w którym działają WordPress, WooCommerce i PrestaShop. Ustawia granice, w jakich wykonuje się każdy skrypt: ile pamięci może zająć, jak długo działać, jak duży plik przyjąć.

Na serwerze współdzielonym jeden plik główny obsługuje wszystkich, więc dostęp do niego jest zablokowany - ale każde konto może nadpisać wybrane wartości u siebie. W DirectAdmin znajdziesz to w ustawieniach PHP dla danej domeny: wybierasz dyrektywę z listy, wpisujesz wartość, zapisujesz. Żadnego grzebania w plikach, żadnego restartu (po panelu prowadzi przewodnik po DirectAdmin).

Ważne: nadpisania działają w granicach ustalonych przez hosting. Jeśli pakiet ma sufit 512 MB pamięci, wpisanie 2 GB nic nie da - PHP przyjmie wartość maksymalną, jaką dopuszcza serwer.

Dyrektywy, które realnie zmieniają życie

DyrektywaCo robiDomyślnie w PHPRozsądna wartość
memory_limitile pamięci może zająć jeden skrypt128M256M (sklepy: 512M)
upload_max_filesizemaksymalny rozmiar wgrywanego pliku2M64M-128M
post_max_sizerozmiar całego żądania - musi być większy niż upload8Mtyle co upload lub więcej
max_execution_timeile sekund może trwać skrypt3060-120 (import: chwilowo 300)
max_input_varsile pól formularza przyjmie PHP10003000-5000
max_input_timeczas na odebranie danych żądaniadziedziczy z execution_time60-120
display_errorspokazywanie błędów na stroniezależy od instalacjiOff na produkcji

Dwie pułapki z tej tabeli warto zapamiętać. Pierwsza: post_max_size musi być większe niż upload_max_filesize, bo obejmuje cały wysyłany formularz razem z plikiem - przy odwrotnym ustawieniu wgrywanie zawiedzie mimo „poprawnego" limitu uploadu. Druga: max_input_vars odpowiada za sytuacje, które wyglądają zupełnie inaczej, niż brzmią - ucięte menu po zapisie albo kreator stron gubiący część ustawień.

Objaw → ustawienie: ściąga diagnostyczna

Co widziszCo zmienić
„Przesłany plik przekracza dyrektywę upload_max_filesize"upload_max_filesize ORAZ post_max_size
„Allowed memory size of X bytes exhausted"memory_limit (a potem szukaj winowajcy)
„Maximum execution time exceeded" przy imporciemax_execution_time
Menu ucięte po zapisie, builder gubi zmianymax_input_vars
Import bazy przerywa się w połowiemax_execution_time + memory_limit
Biały ekran bez komunikatulogowanie błędów do pliku (NIE display_errors)
„413 Request Entity Too Large"to limit serwera WWW, nie PHP - zgłoś do pomocy

Przy komunikacie o pamięci zwróć uwagę na kolejność działań: podniesienie limitu jest doraźnym obejściem, a nie diagnozą. Jeśli zwykłe wejście na stronę potrzebuje 512 MB, problemem jest konkretna wtyczka - jak ją namierzyć, opisuje tekst o przyspieszaniu WordPressa. Przy białym ekranie pełną procedurę czytania logów zbiera instrukcja naprawy WSOD.

Trzy sposoby wprowadzania zmian

  1. Panel hostingu - najprostszy i zalecany. Ustawienia PHP dla domeny, wybór dyrektywy, wartość, zapis. Działa niezależnie od CMS-a i przeżywa aktualizacje strony.
  2. Plik .user.ini w katalogu głównym strony - działa, gdy PHP pracuje jako FastCGI (standard na współczesnym hostingu). Format to zwykłe wpisy „dyrektywa = wartość" w osobnych liniach. Zmiany bywają buforowane przez kilka minut, więc nie panikuj, jeśli nie widać ich natychmiast.
  3. wp-config.php - tylko dla pamięci WordPressa: stała WP_MEMORY_LIMIT dla frontendu i WP_MAX_MEMORY_LIMIT dla panelu. Uwaga: WordPress nie może przekroczyć limitu ustawionego w PHP, więc podnoszenie samej stałej przy niskim memory_limit nic nie da.

Plik .htaccess z wpisami php_value działa wyłącznie przy PHP jako module Apache - na nowoczesnych serwerach z LiteSpeed czy PHP-FPM taki zapis jest ignorowany albo powoduje błąd 500. Jeśli poradnik z internetu każe Ci go użyć, prawdopodobnie pochodzi sprzed dekady.

Nie myl konfiguracji z WERSJĄ PHP

To osobny przełącznik w panelu i osobna decyzja. Nowsze wersje PHP są szybsze i bezpieczniejsze, a różnice w wydajności między odległymi wersjami bywają dwukrotne - przy zerowym koszcie po Twojej stronie.

Stan na 2026 rok: gałęzie 8.1 i starsze nie dostają już żadnych poprawek, 8.2 i 8.3 wyłącznie te dotyczące bezpieczeństwa, a aktywnie rozwijane są 8.4 i 8.5. Dla typowej strony na WordPressie rozsądnym wyborem jest 8.4 - dojrzała, wspierana przez wtyczki i szybka. PHP 8.5 warto testować, gdy używasz mało wtyczek albo masz gdzie sprawdzić stronę przed przełączeniem.

Zmieniaj wersję o jedną w górę i sprawdzaj stronę po każdym kroku; to część rutyny opisanej w tekście o bezpiecznej aktualizacji WordPressa. I zapamiętaj rzecz, o której wszyscy zapominają: po zmianie wersji PHP nadpisania php.ini trzeba zwykle ustawić dla nowej wersji od nowa - każda ma własny zestaw ustawień.

Czego nie wykręcać i dlaczego

  • max_execution_time = 3000 na stałe - zawieszony skrypt będzie wisiał pięćdziesiąt minut, blokując proces i zjadając limity konta. Długie zadania (import katalogu, migracja) uruchamiaj przez wiersz poleceń albo zadanie cron, a limit podnoś tylko na czas operacji.
  • memory_limit 2G „na zapas" - maskuje wycieki pamięci zamiast je ujawniać. Wtyczka, która potrzebuje gigabajta na wyświetlenie listy produktów, jest zepsuta, a nie głodna.
  • display_errors = On na produkcji - wyświetlasz odwiedzającym ścieżki na serwerze, nazwy plików i fragmenty zapytań do bazy. To gotowa mapa dla atakującego. Błędy kieruj do logu (log_errors), a nie na ekran.
  • Wyłączanie limitów „żeby nie przeszkadzały" - to one powstrzymują zapętloną wtyczkę przed położeniem konta. Limit, który boli, jest informacją, a nie przeszkodą.

Wartości powyżej sufitu pakietu po prostu nie zadziałają - u nas te sufity są jawne przy każdym pakiecie hostingu, a gdy projekt naprawdę potrzebuje więcej, podnosimy je indywidualnie: wystarczy napisać do pomocy technicznej. Szerszy obraz zaplecza daje przewodnik Hosting dla firm.

Najczęściej zadawane pytania

Jak sprawdzić, jakie ustawienia PHP mam teraz?

Najszybciej w panelu hostingu, w sekcji ustawień PHP dla domeny - obok pól do zmiany widać wartości obowiązujące. W WordPressie te same informacje znajdziesz w Narzędzia → Stan witryny → Informacje, w sekcji Serwer: jest tam wersja PHP, limit pamięci, maksymalny rozmiar pliku i czas wykonania.

Zmieniłem wartość, a nic się nie zmieniło - dlaczego?

Trzy typowe przyczyny: ustawienie trafiło do innej wersji PHP niż aktualnie używana przez domenę, wartość przekracza sufit pakietu (serwer przyciął ją po cichu), albo zmiana czeka na odświeżenie bufora konfiguracji, co przy pliku .user.ini potrafi zająć kilka minut. Sprawdź stan w Narzędzia → Stan witryny - tam widać wartość realnie obowiązującą.

Ile pamięci potrzebuje WordPress?

Prosta strona firmowa działa spokojnie na 128-256 MB. Sklep WooCommerce z kilkuset produktami, kreatorem stron i wtyczkami do integracji potrzebuje zwykle 512 MB, zwłaszcza przy operacjach w panelu (import, generowanie miniatur, eksport zamówień). Powyżej tego progu przyczyną jest już konkretna wtyczka, a nie skala sklepu.

Czy podniesienie limitów przyspieszy stronę?

Nie. Limity określają, czego skrypt NIE może przekroczyć - nie przydzielają mu mocy. Strona, która mieści się w 128 MB, nie zacznie działać szybciej po ustawieniu 512 MB. Na szybkość wpływają cache, wersja PHP, jakość motywu i liczba wtyczek.

Dlaczego wpisy php_value w .htaccess nie działają?

Bo działają wyłącznie wtedy, gdy PHP pracuje jako moduł Apache - konfiguracja typowa dla serwerów sprzed dekady. Na współczesnym hostingu (LiteSpeed, PHP-FPM) takie wpisy są ignorowane albo zwracają błąd 500. Użyj panelu lub pliku .user.ini.

Czy mogę zepsuć stronę zmianą tych ustawień?

Zmiana wartości liczbowych jest bezpieczna - najgorsze, co się stanie, to że wartość zostanie przycięta do sufitu pakietu. Ryzykowne są dopiero wpisy z literówką w nazwie dyrektywy (bywają ignorowane) oraz wyłączanie funkcji PHP, których wymaga Twój CMS. Zawsze zmieniaj jedną rzecz naraz i sprawdzaj stronę po zapisie.

Powiązane poradniki

Wszystkie poradniki z kategorii: Hosting od podstaw

Powiązane usługi McProdukt

Zobacz również