Tutorial · Laravel · 23.07.2024

Beschleunigen Sie Ihre Laravel-App mit OPCache: Schritt-für-Schritt-Tutorial

Willkommen zu diesem umfassenden Tutorial, in dem ich euch zeige, wie ihr eure Laravel-Anwendung mit OPCache beschleunigen könnt. OPCache ist eine leistungsstar...

Schritt 1: Überprüfen, ob OPCache installiert ist

Zunächst müssen wir sicherstellen, dass OPCache auf eurem Server installiert ist. Erstellen Sie eine PHP-Info-Seite, um die aktuellen PHP-Einstellungen und -Erweiterungen zu überprüfen:
php
<?php phpinfo(); ?>
Speichert die Datei als info.php und ladet sie in das Stammverzeichnis eurer Webseite hoch. Ruft die Seite im Browser auf (http://eure-domain.de/info.php).

Info

Sucht auf der PHP-Info-Seite nach einem Abschnitt namens "Zend OPcache". Wenn ihr diesen Abschnitt findet, ist OPCache bereits installiert.

Schritt 2: OPCache installieren (falls nicht vorhanden)

Falls OPCache nicht installiert ist, könnt ihr es je nach Betriebssystem wie folgt installieren:

Für CentOS/RHEL:

php
sudo apt-get install php-opcache
php
sudo yum install php-opcache

Info

Für Windows:
Stellt sicher, dass die php_opcache.dll in der php.ini-Datei aktiviert ist.

Schritt 3: OPCache aktivieren und konfigurieren

Öffnet die PHP-Konfigurationsdatei (php.ini). Diese Datei befindet sich je nach Installation an unterschiedlichen Orten (z.B. /etc/php/7.4/apache2/php.ini für PHP 7.4 auf Apache). Fügt die folgenden Zeilen hinzu oder passt sie an, um OPCache zu aktivieren und optimal zu konfigurieren:
php
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=0
opcache.validate_timestamps=1

Tipp

opcache.memory_consumption: Die Menge an Speicher (in MB), die OPCache für das Zwischenspeichern von Skripten verwenden darf. 128MB ist ein guter Startwert, kann aber je nach Anwendung angepasst werden.

opcache.max_accelerated_files: Die maximale Anzahl von Dateien, die im Cache gespeichert werden können. 10000 ist ein gängiger Wert für mittelgroße Anwendungen.

opcache.revalidate_freq: Die Häufigkeit (in Sekunden), mit der geprüft wird, ob Dateien aktualisiert wurden. Ein Wert von 0 sorgt dafür, dass bei jedem Request geprüft wird.

Schritt 4: Webserver neu starten

Nachdem ihr die php.ini-Datei bearbeitet habt, müsst ihr den Webserver neu starten, damit die Änderungen wirksam werden.

Für Nginx:

php
sudo systemctl restart apache2
php
sudo systemctl restart nginx

Schritt 5: Laravel konfigurieren

n den meisten Fällen müsst ihr keine spezifischen Anpassungen in eurer Laravel-Konfiguration vornehmen. Stellt jedoch sicher, dass der Cache-Treiber richtig konfiguriert ist. Öffnet die .env-Datei und überprüft, ob CACHE_DRIVER auf file oder redis gesetzt ist:
php
CACHE_DRIVER=file

Schritt 6: Monitoring und Optimierung

Es ist wichtig, den Status von OPCache zu überwachen, um sicherzustellen, dass alles reibungslos läuft. Dafür könnt ihr Tools wie opcache-gui verwenden.
php
git clone https://github.com/amnuts/opcache-gui.git
Kopiert den Inhalt des opcache-gui-Verzeichnisses in ein öffentlich zugängliches Verzeichnis eures Webservers (z.B. /var/www/html/opcache-gui).
Ruft die opcache-gui-Seite im Browser auf (http://eure-domain.de/opcache-gui), um den Status und die Statistiken von OPCache zu überwachen.

Schritt 7: Cache invalidieren nach Code-Änderungen

Nach Änderungen am Code müsst ihr sicherstellen, dass OPCache den neuen Code lädt. Dies könnt ihr erreichen, indem ihr den OPCache-Cache manuell leert: Fügt folgendes Skript in eine PHP-Datei ein (z.B. reset_opcache.php):
php
<?php
opcache_reset();
echo "OPCache wurde zurückgesetzt.";
?>
php
http://eure-domain.de/reset_opcache.php

Schritt 8: Tipps und Tricks für die optimale Nutzung von OPCache

Speicherverbrauch optimieren: Passt die opcache.memory_consumption-Einstellung in der php.ini an, um den Speicherverbrauch optimal zu steuern. Ein Wert von 128MB ist ein guter Ausgangspunkt, kann aber je nach Anwendung angepasst werden.
Konstante Überprüfung: Stellt sicher, dass opcache.revalidate_freq auf 0 gesetzt ist, um sicherzustellen, dass OPCache bei jedem Request überprüft, ob die Dateien aktualisiert wurden. Dies kann nützlich sein während der Entwicklung, sollte aber in der Produktion angepasst werden.
Mit OPCache könnt ihr die Leistung eurer Laravel-Anwendung drastisch verbessern. Die vorkompilierten Skripte im Arbeitsspeicher führen zu schnelleren Ladezeiten und einer geringeren Serverlast, was eure Anwendung insgesamt effizienter und skalierbarer macht. Probiert es aus und erlebt den Unterschied!

Tipp

Cache-Statistiken überwachen: Überwacht regelmäßig die OPCache-Statistiken, um sicherzustellen, dass der Cache effizient genutzt wird und keine Speicherengpässe auftreten.

Quelle: https://birdapi.de/blog/tutorials-laravel/beschleunigen-sie-ihre-laravel-app-mit-opcache-schritt-fur-schritt-tutorial