 Autor: [Tomasz Nowosielski](/autorzy/tomasz-nowosielski) Redaktor naczelny, analityk hostingu · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  PHP OPcache — konfiguracja

# PHP OPcache — konfiguracja i optymalizacja

Opublikowano: 8 kwietnia 2026 · Kategoria: PHP / Serwer

OPcache to wbudowany mechanizm cache'owania kodu PHP w postaci skompilowanej (opcode). Eliminuje potrzebę parsowania plików PHP przy każdym żądaniu — WordPress z OPcache działa 2-5x szybciej niż bez cache'u. Ten artykuł opisuje konfigurację OPcache na VPS i hostingu współdzielonym.

## Podstawowa konfiguracja php.ini

\[opcache\]
; Włącz OPcache
opcache.enable=1
opcache.enable\_cli=0

; Pamięć na skompilowany kod (MB)
opcache.memory\_consumption=128

; Pamięć na interned strings (MB)
opcache.interned\_strings\_buffer=16

; Maks. liczba plików w cache
opcache.max\_accelerated\_files=10000

; Jak często sprawdzać zmiany plików (sekundy, 0 = nigdy)
; Na produkcji: 0 (ręczne invalidation po deploy)
; Na dev: 2 (automatyczne odświeżanie)
opcache.revalidate\_freq=0

; Zapisz skompilowany kod na dysk (trwałość po restarcie PHP)
opcache.file\_cache=/tmp/php-opcache

; Wyłącz timestampy na produkcji (szybsze, wymaga ręcznego clear)
opcache.validate\_timestamps=0

## Optymalne ustawienia dla WordPress

; WordPress + WooCommerce (typowy serwer)
opcache.memory\_consumption=256
opcache.interned\_strings\_buffer=32
opcache.max\_accelerated\_files=20000
opcache.revalidate\_freq=0
opcache.validate\_timestamps=0
opcache.save\_comments=1    ; wymagane przez DocBlock annotations
opcache.fast\_shutdown=1

; Wielostronicowy serwer (wiele WP instalacji)
opcache.memory\_consumption=512
opcache.max\_accelerated\_files=50000

## Weryfikacja i monitoring

<?php
// opcache-status.php — usuń po użyciu!
$status = opcache\_get\_status();

echo "Aktywny: " . ($status\['opcache\_enabled'\] ? 'TAK' : 'NIE') . "\\n";
echo "Hit rate: " . round($status\['opcache\_statistics'\]\['opcache\_hit\_rate'\], 2) . "%\\n";
echo "Pliki w cache: " . $status\['opcache\_statistics'\]\['num\_cached\_scripts'\] . "\\n";
echo "Pamięć użyta: " . round($status\['memory\_usage'\]\['used\_memory'\] / 1024 / 1024, 2) . " MB\\n";
echo "Pamięć wolna: " . round($status\['memory\_usage'\]\['free\_memory'\] / 1024 / 1024, 2) . " MB\\n";
echo "Hits: " . $status\['opcache\_statistics'\]\['hits'\] . "\\n";
echo "Misses: " . $status\['opcache\_statistics'\]\['misses'\] . "\\n";

Docelowe wartości: **hit\_rate > 90%**, pamięć użyta < 80% przydzielonej. Jeśli hit\_rate spada — zwiększ `max_accelerated_files`.

## Czyszczenie OPcache po deploymencie

\# Metoda 1: WP-CLI (jeśli CLI i FPM w tym samym procesie)
wp eval "opcache\_reset();" --allow-root

# Metoda 2: HTTP endpoint (bezpieczniejszy na serwerach z FPM)
# Utwórz: /var/www/html/clear-opcache.php
<?php
if ($\_SERVER\['REMOTE\_ADDR'\] === '127.0.0.1') {
    opcache\_reset();
    echo "OPcache wyczyszczony";
}
# Wywołaj:
curl http://localhost/clear-opcache.php
# Usuń plik po użyciu!

# Metoda 3: Przez deploy script
php -r "opcache\_reset();"  # działa tylko gdy PHP CLI i FPM to ten sam proces

# Metoda 4: Restart PHP-FPM (pewna, ale reload serwisu)
systemctl reload php8.3-fpm

## OPcache na hostingu współdzielonym

\# Ustawienia przez .user.ini (umieść w katalogu domeny)
# Plik: /home/user/domains/twojadomena.pl/public\_html/.user.ini
opcache.revalidate\_freq=60
opcache.memory\_consumption=128

# Lub przez .htaccess (Apache + mod\_php)
# php\_value opcache.revalidate\_freq 60

# Weryfikacja (utwórz phpinfo.php):
<?php phpinfo();
# Szukaj: "opcache" w sekcji Loaded Modules
# Usuń plik po weryfikacji!

## Porównanie konfiguracji: dev vs produkcja

Dyrektywa

Dev

Produkcja

Uwagi

validate\_timestamps

1

0

Na prod: ręczne invalidation

revalidate\_freq

2

0

Sek. między sprawdzeniami

memory\_consumption

64

128-256

MB pamięci RAM

max\_accelerated\_files

4000

10000-50000

Maks. plików w cache

enable\_cli

0

0

CLI i FPM to osobne procesy

## Najczęstsze pytania

Jak sprawdzić czy OPcache jest aktywny? +

Utwórz plik phpinfo.php z zawartością <?php phpinfo(); i otwórz go w przeglądarce — szukaj sekcji 'opcache'. Alternatywnie: wp eval "echo function\_exists('opcache\_get\_status') ? 'aktywny' : 'nieaktywny';" (WP-CLI). Na hostingu współdzielonym OPcache często jest włączony domyślnie.

Ile pamięci RAM przydzielić dla OPcache? +

Dla WordPress: min. 64 MB (opcache.memory\_consumption=64). Dla większych instalacji z wieloma wtyczkami: 128-256 MB. Dla serwera z wieloma serwisami: 512 MB+. Sprawdź utilizację: opcache\_get\_status()\['memory\_usage'\]. Jeśli opcache\_hit\_rate < 90% lub used\_memory > 90% — zwiększ memory\_consumption.

Jak wyczyścić cache OPcache po deploymencie? +

PHP: opcache\_reset() lub opcache\_invalidate($file, true). WP-CLI: wp eval "opcache\_reset();" — jeśli CLI i FPM działają osobno, trzeba HTTP endpoint. Najprostsza metoda: plik clear-opcache.php z opcache\_reset() + usunięcie po wywołaniu. Na hostingu współdzielonym: restart PHP w panelu (DirectAdmin/cPanel) lub poczekaj na opcache.revalidate\_freq.

Czy OPcache działa na hostingu współdzielonym? +

Tak, większość nowoczesnych hostingów współdzielonych ma OPcache włączony domyślnie — to standardowa optymalizacja. Nie masz dostępu do php.ini na poziomie serwera, ale możesz ustawić dyrektywy przez .htaccess (php\_value opcache.revalidate\_freq 0) lub plik .user.ini w katalogu domeny. Sprawdź w panelu hostingu lub w phpinfo() czy jest aktywny.

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

LH.pl

Hosting z PHP 8.3 i OPcache włączonym domyślnie

PHP 8.3 + OPcache

[Aktywuj rabat →](/out/lh-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/lh-pl)

zenbox.pl

LiteSpeed + OPcache dla WordPress na NVMe SSD

LiteSpeed + OPcache

[Aktywuj rabat →](/out/zenbox)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/zenbox)

dhosting.pl

Hosting NVMe z OPcache i DirectAdmin

NVMe + OPcache

[Aktywuj rabat →](/out/dhosting)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/dhosting)

## Powiązane strony

-   [PHP-FPM — konfiguracja i optymalizacja](/baza-wiedzy/php-fpm-konfiguracja-optymalizacja)
-   [Nginx — konfiguracja virtual host](/baza-wiedzy/nginx-vhost-konfiguracja)
-   [WordPress staging — środowisko testowe](/baza-wiedzy/wordpress-staging-srodowisko)
-   [Redis cache dla WordPress](/baza-wiedzy/redis-cache-wordpress)
-   [Wszystkie artykuły](/baza-wiedzy/)