PHP Opcache - jak działa i jak go poprawnie skonfigurować
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.
07 wrz 2025 • 11 min czytania Zabbix - profesjonalne narzędzie monitoringu IT. Czym jest i jakie korzyści daje?
Stabilne działanie serwerów i aplikacji wymaga ciągłego monitoringu. Bez odpowiednich narzędzi administrator dowiaduje się o problemie...
Zobacz więcej
15 wrz 2025 • 14 min czytania Jak zainstalować n8n na serwerze Linux (Debian/Ubuntu)?
n8n to nowoczesne narzędzie do automatyzacji procesów, które pozwala tworzyć złożone integracje i przepływy pracy bez konieczności...
Zobacz więcej
08 wrz 2025 • 13 min czytania Pułapki w konfiguracji MySQL, które spowalniają bazę - i jak ich uniknąć?
MySQL to jedna z najpopularniejszych baz danych na świecie, używana zarówno w małych aplikacjach, jak i dużych systemach produkcyjnych....
Zobacz więcej
11 wrz 2025 • 13 min czytania Jak wdrożyć skanowanie podatności na serwerach Linux?
Bezpieczeństwo serwerów Linux to fundament stabilnej infrastruktury IT. Nawet jeśli system jest na bieżąco aktualizowany, zawsze istnieje...
Zobacz więcej
01 wrz 2025 • 13 min czytania High Availability - jak zbudować niezawodną infrastrukturę?
W świecie biznesu online każda minuta przestoju to straty finansowe i utrata zaufania klientów. Dlatego coraz więcej firm stawia na...
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