dhosting.pl
Hosting PHP z dobrymi parametrami pod WordPress i WooCommerce
#Reklama · link partnerski
Zobacz kod rabatowy →Ostatnia aktualizacja: kwiecień 2026
pm = dynamic, pm.max_children = 10, pm.start_servers = 3, OPcache 64 MB. Dla 2 GB:
max_children = 20, OPcache 128 MB. Sprawdź rzeczywiste zużycie procesu: ps aux | grep php-fpm — dopasuj liczbę procesów do dostępnego RAM.
PHP-FPM (FastCGI Process Manager) to implementacja FastCGI dla PHP, domyślna w nowoczesnych konfiguracjach z Nginx. Zarządza pulą procesów PHP obsługujących żądania — w przeciwieństwie do mod_php (Apache) gdzie PHP jest wbudowane w serwer, PHP-FPM to osobny demon.
Klucz do wydajności: prawidłowy dobór liczby procesów (workers). Za mało — kolejkowanie żądań i wolne odpowiedzi. Za dużo — brak RAM, swap, crash.
Główny plik konfiguracyjny puli: /etc/php/8.2/fpm/pool.d/www.conf
[www] user = www-data group = www-data ; Socket Unix — szybszy niż TCP dla lokalnego Nginx listen = /run/php/php8.2-fpm.sock listen.owner = www-data listen.group = www-data ; === ZARZĄDZANIE PROCESAMI === ; dynamic = procesy tworzone/niszczone wg ruchu (ZALECANE dla VPS) pm = dynamic ; Maksymalna liczba procesów (workers) ; Wzór: (RAM dla PHP) / (pamięć 1 procesu) ; Przykład VPS 2GB: (1200MB / 60MB) = 20 pm.max_children = 20 ; Procesy startujące przy uruchomieniu PHP-FPM pm.start_servers = 5 ; Minimum wolnych (oczekujących) procesów pm.min_spare_servers = 3 ; Maximum wolnych procesów (reszta jest niszczona) pm.max_spare_servers = 8 ; Restart procesu po N żądaniach (zapobiega wyciekowi pamięci) pm.max_requests = 500 ; === LIMITY === php_admin_value[memory_limit] = 256M php_admin_value[max_execution_time] = 60 php_admin_value[upload_max_filesize] = 64M php_admin_value[post_max_size] = 64M ; === LOGI === ; Loguj wolne żądania (powyżej 5 sekund) slowlog = /var/log/php8.2-fpm-slow.log request_slowlog_timeout = 5s
Rekomendowane ustawienia wg rozmiaru VPS:
| VPS RAM | max_children | start_servers | OPcache |
|---|---|---|---|
| 512 MB | 5 | 2 | 32 MB |
| 1 GB | 10 | 3 | 64 MB |
| 2 GB | 20 | 5 | 128 MB |
| 4 GB | 40 | 8 | 256 MB |
OPcache konfiguruj w /etc/php/8.2/fpm/conf.d/10-opcache.ini:
[opcache] opcache.enable = 1 opcache.enable_cli = 0 ; Pamięć dla skompilowanych skryptów (MB) ; WordPress + wtyczki: min 128MB zalecane opcache.memory_consumption = 128 ; Pamięć dla intern strings opcache.interned_strings_buffer = 16 ; Max liczba plików PHP w cache opcache.max_accelerated_files = 10000 ; Sprawdzaj zmiany co N sekund (0 = sprawdzaj zawsze; prod: 60-300) opcache.revalidate_freq = 60 ; Wyłącz w produkcji dla max wydajności (cache nie sprawdza zmian) ; Pamiętaj: po deployu wykonaj opcache_reset() lub restart php-fpm ; opcache.validate_timestamps = 0 ; Zapisuj bajtkody na dysk (szybki zimny start po restarcie) opcache.file_cache = /tmp/php-opcache opcache.file_cache_only = 0 ; Dobre dla stabilnych aplikacji opcache.save_comments = 1
# Po każdej zmianie konfiguracji — restart PHP-FPM: sudo systemctl restart php8.2-fpm # Weryfikacja konfiguracji: sudo php-fpm8.2 -t # Status OPcache (przez PHP): php -r "print_r(opcache_get_status());" | head -30
Jeśli hostujesz wiele stron, warto użyć oddzielnych pul PHP-FPM — izolacja procesów, osobne limity pamięci, osobne użytkowniki systemowe:
# /etc/php/8.2/fpm/pool.d/site1.conf [site1] user = site1 group = site1 listen = /run/php/php8.2-site1.sock pm = ondemand ; oszczędny tryb dla małych stron pm.max_children = 5 pm.process_idle_timeout = 10s pm.max_requests = 200 # /etc/php/8.2/fpm/pool.d/site2.conf [site2] user = site2 group = site2 listen = /run/php/php8.2-site2.sock pm = dynamic ; aktywny tryb dla głównej strony pm.max_children = 15 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 6
Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.