ZARZąDZANIE HOSTINGIEM (DIRECTADMIN) • 4 MIN READ

Limity PHP — memory_limit, upload_max_filesize, max_execution_time

Najważniejsze limity PHP dla aplikacji web. Jak zwiększyć, dla WordPress/sklepu. Co robić gdy 'Allowed memory size exhausted'.

Zespół IQHost 14 maj 2026 4m read
#DirectAdmin #IQHost #hosting

Trzy najczęściej zmieniane parametry PHP. Domyślne wartości w IQHost wystarczają dla typowych stron, ale WordPress + WooCommerce, sklepy z dużymi importami, upload wideo wymagają wyższych.

Co zyskasz

  • Ustawisz właściwe limity dla swojej aplikacji.
  • Naprawisz „Allowed memory size of X bytes exhausted".
  • Naprawisz „Maximum execution time exceeded".
  • Skonfigurujesz upload dużych plików (wideo, PDF).

Wymagania wstępne

  • Konto DA, domena.

Trzy najważniejsze limity

Wskazówka

Domyślne wartości w IQHost (mogą się różnić per pakiet):

Dyrektywa Default Max
memory_limit 256M 1024M (HS5+)
upload_max_filesize 100M 500M+
post_max_size 100M 500M+
max_execution_time 300s 600s+
max_input_vars 5000 10000+

Krok 1: Otwórz Ustawienia PHP

Zarządzanie kontami → Ustawienia PHP lub Select PHP version → Options.

Strona Ustawienia PHP z listą dyrektyw Strona Ustawienia PHP — punkt zmiany memory_limit / upload_max_filesize

Krok 2: Zmień wartość

W tabeli znajdź dyrektywę (np. memory_limit) → kliknij wartość → wpisz nową → Apply.

Format: liczba + jednostka:

  • M = megabajt (1M = 1048576 bytes)
  • G = gigabajt
  • Bez jednostki = bytes
memory_limit = 512M
upload_max_filesize = 200M
post_max_size = 256M
max_execution_time = 600

memory_limit

Co to: Max RAM, którą skrypt może użyć.

Co się dzieje gdy za niski:

Fatal error: Allowed memory size of 134217728 bytes exhausted

Typowe wartości:

Aplikacja memory_limit
Statyczna strona 64M
WordPress (blog) 128-256M
WordPress + WooCommerce 256-512M
Magento 512-1024M
Big sklep z importami 1024M+
Migracja dużej bazy 512M (tymczasowo)

Wskazówka

Wyższy memory_limit nie zawsze pomaga. Często prawdziwy problem to memory leak w aplikacji (plugin, motyw). Sprawdź log, znajdź winowajcę.

upload_max_filesize + post_max_size

Co to: Max wielkość uploadu i całego POST request.

Co się dzieje gdy za niski:

PHP error: file exceeds upload_max_filesize

Lub w WordPress: „file is too large".

Reguła: post_max_size >= upload_max_filesize (zwykle 10-20% większe).

Typowe scenariusze:

Co uploadujesz upload_max post_max
Logo, ikony 5M 8M
Zdjęcia produktów 50M 64M
Wideo na YouTube-like 500M 512M
PDF książkowe 100M 128M
Backupy bazy 200M 256M

Wskazówka

Dla bardzo dużych uploadów (>500M) — lepiej FTP/SFTP zamiast przez przeglądarkę. Patrz FTP.

max_execution_time

Co to: Max czas (sekundy), który skrypt może działać.

Co się dzieje gdy za niski:

Fatal error: Maximum execution time of 30 seconds exceeded

Typowe wartości:

Operacja max_execution_time
Zwykła strona 30-60
WordPress admin 300
Import CSV / Excel 600
Generowanie PDF/report 600
Migracja, mass update 1800
Backup (przez panel) 1800

Cron jobs mają osobny limit — nie podlegają max_execution_time. Patrz Zadania Cron.

max_input_vars

Co to: Max liczba zmiennych w POST/GET.

Kiedy problem: Strona ma duży formularz (CRM, e-commerce checkout z wieloma polami). WordPress menu z 50+ pozycjami.

Default: 5000. Zwiększ do 10000-20000 gdy widzisz dziwne błędy „zniknięte pola formularza" lub menu po zapisaniu.

Rekomendowane zestawy

Mały blog WordPress

memory_limit = 256M
upload_max_filesize = 50M
post_max_size = 64M
max_execution_time = 300
max_input_vars = 5000

WooCommerce sklep średni

memory_limit = 512M
upload_max_filesize = 100M
post_max_size = 128M
max_execution_time = 600
max_input_vars = 10000

Magento / duży sklep

memory_limit = 1024M
upload_max_filesize = 200M
post_max_size = 256M
max_execution_time = 1800
max_input_vars = 20000

Development / staging

memory_limit = 512M
display_errors = On
log_errors = On
error_reporting = E_ALL

Najczęstsze problemy

1. „Allowed memory size exhausted" — zwiększyłem, nadal błąd

Powody:

  • Aplikacja sama nadpisuje (ini_set('memory_limit', '128M') w kodzie)
  • WordPress wp-config.php ma WP_MEMORY_LIMIT:
    define('WP_MEMORY_LIMIT', '512M');
    define('WP_MAX_MEMORY_LIMIT', '1024M');
    
  • OPcache cachuje stare → restart PHP

2. „Maximum execution time exceeded" — operacja jest długa

Zwiększ max_execution_time → 600 albo 1800.

Albo lepiej: podziel operację na kawałki (batch processing, AJAX chunks).

3. „Upload się kończy o 50%"

  • upload_max_filesize lub post_max_size za niski
  • LiteSpeed/Apache też ma limit (LimitRequestBody) — admin tylko
  • Slow internet — uploads timeout

4. „Mam 1024M memory_limit, ale aplikacja nadal pada"

  • Memory leak w pluginie/motywie
  • Aplikacja po prostu wymaga więcej (ekstremalne — sklep z 100k produktów wymaga 2GB)
  • Refactor kodu / optymalizacja zapytań DB

5. „Cron job timeout"

Cron ma własny limit — php_cli_max_execution_time (zwykle 0 = bez limitu) lub odpalenie z timeout w samym cronie.

Patrz Zadania Cron.

6. „WordPress 'memory size exhausted' nawet z 512M"

Zaktualizuj wp-config.php:

define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT', '1024M');

Plus może problem z konkretnym pluginem — wyłącz po jednym i znajdź winnego.

7. „Wszystkie limity max, ale strona nadal wolna"

Problem nie w PHP limitach — w architekturze. Sprawdź:

  • Bazę (slow queries — index)
  • Cache (LiteSpeed Cache, Redis)
  • CDN dla static files
  • Optymalizacja obrazków (WebP, lazy load)

Słowniczek

  • memory_limit — max RAM dla skryptu PHP.
  • upload_max_filesize — max plik przez upload.
  • post_max_size — max wielkość całego POST.
  • max_execution_time — max czas wykonania (s).
  • max_input_vars — max liczba zmiennych w request.

Related

Feedback

Czy ten artykuł pomógł?

Potwierdź