Wie kann festgestellt werden, ob PHP OPcache aktiviert ist oder nicht?

Lesezeit: 4 Minuten

Benutzer-Avatar
Salvador Dalí

Ich versuche, opCache auf meinem Server zu aktivieren (ubuntu 12.04 LTSlaufend apache 2.4.7 mit PHP Version 5.5.10-1+deb.sury.org~precise+1).

Bevor ich anfange, etwas zu tun, habe ich diesen hochrelevanten Beitrag gelesen, der mir sagte, dass opCache standardmäßig deaktiviert ist und ich es manuell aktivieren muss.

Ich bin in die php.ini gegangen und habe festgestellt, dass dort kein Text steht opcache.so, auch alles, was mit Opcache zu tun hat, ist auskommentiert. So was:

[opcache]
; Determines if Zend OPCache is enabled
;opcache.enable=0

; Determines if Zend OPCache is enabled for the CLI version of PHP
;opcache.enable_cli=0

Das ist in Ordnung, weil die Person gesagt hat, dass es deaktiviert ist. Aber wenn ich konsultiere phpinfo(); Es zeigt mir Folgendes (und nach meinem Verständnis sagt es mir, dass opCache bereits verwendet wird).

Geben Sie hier die Bildbeschreibung ein

Ist mein Opcache also aktiviert und verwendet und wie kann ich ihn sehen/überprüfen?

  • hast du deinen Server vor dem Ausführen neu gestartet? phpinfo()

    – Sieg

    31. März 2014 um 22:00 Uhr

  • @Victory Ich habe es gerade neu gestartet und das Ergebnis ist dasselbe. (mit Ausnahme der Zahlen in Cache Hits 3, Cache Misses 2). Außerdem werden Skripte/Schlüssel im verwendeten/freien Speicher zwischengespeichert. Was mich tatsächlich näher an den Glauben bringt, dass es bereits läuft.

    – Salvador Dalí

    31. März 2014 um 22:05 Uhr

  • Ich habe das gleiche Problem, aber meine Werte bewegen sich nicht. i.imgur.com/JwEaGwu.png irgendein Rat?

    – Revious

    29. September 2016 um 14:05 Uhr

Benutzer-Avatar
Strahl

Habe Vertrauen in deine phpinfo()haben Sie das erforderliche gemeinsam genutzte Modul ausgeführt, oder es würde nicht angezeigt werden.

Außerdem ist Ihr Opcache zwar aktiviert, aber nur für das Web, nicht für CLI. Die Standardeinstellung für die Bibliothek ist für das Web aktiviert, also bis deaktivieren Entkommentieren Sie die Zeile, die mit einem Semikolon beginnt, wie folgt:

 opcache.enable=0 

Wie bereits erwähnt, ist die Standardeinstellung für die Verwendung von PHP auf der Befehlszeile deaktiviert. Um sie zu aktivieren, kommentieren Sie sie aus und setzen Sie sie auf 1

 opcache.enable_cli=1

Hier ist eine Liste aller Laufzeitargumente und deren Standardwert zur weiteren Bezugnahme: http://www.php.net/manual/en/opcache.configuration.php

UPDATE: Ab 2020 wird diese Bibliothek möglicherweise nicht mehr gepflegt, siehe Kommentare unten für andere mögliche Optionen.

Wenn Sie eine coole Web-Monitor-Seite dafür wollen (wie es apc.php für apc tut), versuchen Sie Folgendes: https://github.com/rlerdorf/opcache-status

  • Cool, danke. Anscheinend muss ich phpinfo mehr vertrauen als hoch bewerteten Antworten. Danke für die Bestätigung.

    – Salvador Dalí

    31. März 2014 um 22:15 Uhr

  • @SalvadorDali Der andere Beitrag, auf den Sie sich beziehen, ob die Freigabebibliothek der Erweiterung vorhanden und geladen ist. Ich denke, es wäre klar zu sagen, dass das gemeinsam genutzte Modul möglicherweise nicht so eingestellt ist, dass es standardmäßig den PHP 5.5-Build lädt, aber das bedeutet nicht, dass es „deaktiviert“ ist, es ist nicht einmal geladen. Offensichtlich hat Ihr Setup die gemeinsam genutzte Bibliothek für das Modul aktiviert. Sobald das Modul aktiviert ist, verwenden Sie die Konfigurationseinstellungen I not, um bestimmte Funktionen ein- und auszuschalten und bestimmte Funktionen zu aktivieren/deaktivieren.

    – Strahl

    31. März 2014 um 22:25 Uhr

  • Aus irgendeinem Grund denke ich, dass diese Antwort in den nächsten Jahren einen großen Erfolg haben wird 🙂

    – mamdouh alramadan

    31. März 2014 um 22:29 Uhr

  • Ich wollte nur sagen, wenn Sie es von Ihrem CLI aus überprüfen müssen, können Sie php -i | ausführen grep opcache

    – Dr. Schokolade

    26. Oktober 2018 um 0:16 Uhr

  • github.com/rlerdorf/opcache-status wurde lange nicht mehr aktualisiert. Versuchen github.com/amnuts/opcache-gui. Es wird regelmäßig aktualisiert.

    – Umair Khan

    3. Juli 2020 um 7:35 Uhr

Benutzer-Avatar
Jesse Nickles

Aus irgendeinem Grund gibt es eine Menge widersprüchlicher Dokumentation über PHP OPcache für PHP v5.5 (die Version, die es zuerst unterstützte), wobei einige Webseiten sagen, dass es standardmäßig aktiviert ist und andere sagen, dass es standardmäßig kompiliert, aber nicht aktiviert ist .

Nur aus meiner Erinnerung, ich glaube, ich habe PHP 5.5- und 5.6-Installationen gesehen, bei denen OPcache zwar kompiliert, aber noch nicht aktiviert war. Dies würde erklären, warum Standard php.ini Zeile zeigt deaktiviert. Die Verwirrung ist wahrscheinlich auf die verschiedenen Arten zurückzuführen, auf die PHP kompiliert werden kann.

Wie auch immer, aus verschiedenen Gründen scheint es PHP 7+ zu sein so ziemlich immer hat OPcache standardmäßig aktiviert und vermeidet auch hier komplexe Diskussionen über das Kompilieren.

Alles in allem dient die OP-Frage wirklich dazu, zu überprüfen, ob OPcache aktiviert ist oder nicht (nur).

Dazu gibt es eine Spezialfunktion opcache_get_status dafür, was kann Arrays akzeptieren zu. In Zukunft wird diese Funktion wahrscheinlich beliebter werden, da sie mehr darauf ausgerichtet ist, die OPcache-Konfigurationseinstellungen zu erklären als php.ini und kann in verschiedenen Skripten usw. verwendet werden.

Hier ist ein kurzes Beispiel:

<?php (is_array(opcache_get_status()) ? 'enabled' : 'disabled') ?>

Ref: https://www.digitalocean.com/community/questions/enable-php-5-5-opcache-on-ubuntu-14-04-with-nginx-and-php-fpm?comment=25376

  • Beachten Sie auch, dass Sie function_exists( ‘opcache_get_status’ ) überprüfen können, um schwerwiegende Fehler zu vermeiden

    – Ramon Fincken

    5. Februar 2021 um 15:44 Uhr

  • Ich erhalte unterschiedliche Ergebnisse, je nachdem, ob ich anrufe echo "starting test\nopcache status:".is_array(opcache_get_status()) ? 'enabled' : 'disabled'; oder nur echo is_array(opcache_get_status()) ? 'enabled' : 'disabled'; – das ist etwas unpraktisch…

    – Uhrwerk

    23. Februar 2021 um 12:17 Uhr

1298980cookie-checkWie kann festgestellt werden, ob PHP OPcache aktiviert ist oder nicht?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy