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