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

Wczoraj, 22:35 • 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ę.
04 wrz 2025 • 7 min czytania

Redis jako cache aplikacji - jak przyspieszyć serwis webowy

Redis to szybka baza danych działająca w pamięci RAM, która doskonale sprawdza się jako warstwa cache dla aplikacji webowych. Dzięki...

Zobacz więcej

05 wrz 2025 • 8 min czytania

Jak monitorować temperaturę i zdrowie dysków (SMART, nvme-cli, hddtemp)

Dyski twarde i nośniki SSD są jednym z najważniejszych elementów infrastruktury serwerowej. Awaria dysku może oznaczać utratę danych i...

Zobacz więcej

01 wrz 2025 • 5 min czytania

Backup i Disaster Recovery - najlepsze praktyki

Stabilność systemów IT to nie tylko bieżąca wydajność, ale przede wszystkim bezpieczeństwo danych. Awaria serwera, błąd aplikacji czy...

Zobacz więcej

07 wrz 2025 • 9 min czytania

Automatyzacja zadań z crontab - najlepsze praktyki

Automatyzacja zadań w Linux to jeden z kluczowych elementów administracji serwerami. Dzięki crontab można planować uruchamianie skryptów...

Zobacz więcej

01 wrz 2025 • 6 min czytania

High Availability - jak zbudować niezawodną infrastrukturę?

W świecie online każda minuta przestoju może oznaczać realne straty finansowe i wizerunkowe. Dlatego firmy, które obsługują duży ruch,...

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