PHP Opcache - jak działa i jak go poprawnie skonfigurować

08 wrz 2025 • 12 min czytania
Każde uruchomienie skryptu PHP wiąże się z parsowaniem kodu i kompilacją do kodu pośredniego (opcode), zanim zostanie on wykonany przez maszynę Zend Engine. To proces kosztowny, który przy dużej liczbie żądań spowalnia aplikację. Opcache rozwiązuje ten problem, buforując skompilowany kod w pamięci RAM. Dzięki temu kolejne żądania wykonują się znacznie szybciej, a serwer obsługuje więcej użytkowników przy tym samym obciążeniu.

W tym artykule omawiamy, jak działa Opcache, jak go włączyć i poprawnie skonfigurować w środowisku produkcyjnym.

Jak działa Opcache


Opcache przechowuje w pamięci RAM skompilowany kod PHP (opcode).
przy pierwszym wywołaniu plik PHP jest parsowany i kompilowany
wynik kompilacji zapisywany jest w pamięci Opcache
kolejne żądania wykonują się bez ponownej kompilacji, co przyspiesza obsługę

Efekty:
krótszy czas odpowiedzi serwera
mniejsze zużycie CPU
obsługa większej liczby żądań przy tym samym sprzęcie

Włączenie Opcache


Opcache jest dostępny w PHP od wersji 5.5 i w nowszych dystrybucjach włączony domyślnie. Aby sprawdzić, czy działa:

php -i | grep opcache

Jeśli nie jest aktywny, włącz go w pliku php.ini:

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1

Podstawowa konfiguracja


Najważniejsze parametry w pliku php.ini lub /etc/php/*/mods-available/opcache.ini:

opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.revalidate_freq=60
opcache.validate_timestamps=1

opcache.memory_consumption - ilość pamięci RAM dla bufora (np. 128-512 MB)
opcache.interned_strings_buffer - pamięć dla cache’owania stringów (np. 8-32 MB)
opcache.max_accelerated_files - liczba skompilowanych plików, które mogą być buforowane
opcache.validate_timestamps - sprawdzanie zmian w plikach (1 = włączone)
opcache.revalidate_freq - jak często sprawdzane są zmiany (w sekundach)

Konfiguracja dla środowiska produkcyjnego


W środowisku produkcyjnym warto ograniczyć sprawdzanie zmian plików, aby nie obciążać serwera:

opcache.validate_timestamps=0

Wtedy zmiany w kodzie wymagają ręcznego restartu PHP-FPM/Apache:

sudo systemctl restart php8.2-fpm

Dodatkowe parametry



opcache.max_wasted_percentage=5
opcache.enable_file_override=1
opcache.save_comments=1

opcache.max_wasted_percentage - maksymalna ilość fragmentacji bufora, po której następuje restart cache
opcache.enable_file_override - wymusza używanie plików z cache nawet, jeśli nie istnieją na dysku (optymalizacja)
opcache.save_comments - zachowanie komentarzy w kodzie (potrzebne dla niektórych frameworków i generatorów dokumentacji)

Monitorowanie Opcache


Możesz zainstalować proste GUI do podglądu stanu Opcache:

git clone https://github.com/amnuts/opcache-gui.git /var/www/html/opcache

Dostęp przez przeglądarkę:

http://twoj-serwer/opcache

Pokazuje m.in. wykorzystanie pamięci, fragmentację i listę skompilowanych plików.

Najlepsze praktyki


przydziel odpowiednio dużo pamięci RAM - zbyt mała spowoduje częste czyszczenie cache
ustaw max_accelerated_files w zależności od liczby plików w aplikacji (Magento, PrestaShop i inne e-commerce wymagają nawet >100k)
w środowisku developerskim zostaw validate_timestamps=1, aby zmiany były widoczne od razu
w produkcji ustaw validate_timestamps=0 i ręcznie restartuj PHP po deployu
monitoruj fragmentację cache i dostosowuj parametry

Podsumowanie


Opcache to jedno z najprostszych, a zarazem najskuteczniejszych narzędzi do przyspieszania aplikacji PHP. Wystarczy kilka linii konfiguracji, aby znacząco zmniejszyć obciążenie serwera i poprawić czas odpowiedzi aplikacji. Poprawnie skonfigurowany Opcache to must-have w każdym środowisku produkcyjnym opartym o PHP.

Twoja aplikacja działa wolno mimo mocnego serwera? Skontaktuj się z nami - przeprowadzimy audyt konfiguracji PHP, wdrożymy Opcache i inne mechanizmy optymalizacji, aby przyspieszyć Twoją stronę.
01 wrz 2025 • 11 min czytania

Awaria serwera - jak poradzić sobie z problemami technicznymi?

Serwery są fundamentem działania nowoczesnych firm - od prostych stron internetowych, przez sklepy online, aż po złożone systemy...

Zobacz więcej

03 wrz 2025 • 6 min czytania

Jak zainstalować nginx na serwerze VPS z debian 12

Nginx to jeden z najpopularniejszych serwerów WWW na świecie. Słynie z wysokiej wydajności, elastyczności i niskiego zużycia zasobów....

Zobacz więcej

13 wrz 2025 • 12 min czytania

Administracja serwerami - co to jest i dlaczego jest tak ważna?

Serwery stanowią podstawę działania współczesnych firm. To na nich uruchamiane są strony internetowe, sklepy e-commerce, aplikacje...

Zobacz więcej

06 wrz 2025 • 9 min czytania

Redis vs Memcached - które rozwiązanie cache wybrać dla aplikacji webowe

Cache to jeden z najprostszych i najskuteczniejszych sposobów na przyspieszenie aplikacji webowych. Dzięki niemu dane są przechowywane w...

Zobacz więcej

07 wrz 2025 • 9 min czytania

Uwierzytelnianie dwuskładnikowe SSH z Google Authenticator

Dostęp do serwera przez SSH to podstawowe narzędzie administratora, ale jednocześnie jeden z najczęściej atakowanych punktów w...

Zobacz więcej

Tutaj znajdziesz odpowiedzi na najważniejsze pytania dotyczące naszych usług i wsparcia.

FAQ

Jakie usługi administracji serwerami oferujecie?

Świadczymy kompleksową obsługę - od konfiguracji i monitoringu, przez optymalizację wydajności, aż po pełne wsparcie techniczne 24/7.

Czy zajmujecie się migracją danych i systemów?

Tak, wykonujemy bezpieczne migracje plików, baz danych i aplikacji - bez przestojów i bez dodatkowych kosztów.

Czym różni się serwer dedykowany od VPS?

Serwer dedykowany to pełna maszyna tylko dla Ciebie, a VPS to jej podział na wirtualne środowiska - tańsze, ale współdzielone.

Czy mogę liczyć na pomoc przy awarii?

Tak, monitorujemy serwery całodobowo i natychmiast reagujemy w przypadku awarii, minimalizując ryzyko przestoju.

Czy Wasze rozwiązania są skalowalne?

Oferujemy infrastrukturę, która rośnie razem z Twoim biznesem - łatwo zwiększysz zasoby wtedy, gdy tego potrzebujesz.

Czy oferujecie wsparcie przy budowie infrastruktury?

Tak, projektujemy i wdrażamy środowiska IT dopasowane do potrzeb – od małych firm po duże, złożone systemy.

Jak zabezpieczacie serwery przed atakami i utratą danych?

Stosujemy firewalle, systemy anty-DDoS, regularne backupy i aktualizacje, aby zapewnić maksymalne bezpieczeństwo.

Jakie gwarancje SLA zapewniacie?

Oferujemy SLA na poziomie 99.99% dostępności, co oznacza niezawodne działanie infrastruktury i szybki czas reakcji przy ewentualnych problemach.

Chcesz dowiedzieć się więcej o naszej ofercie?

Wyślij  zapytanie