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

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ę.

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
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
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
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
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ęcejTutaj 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