Wie kann festgestellt werden, ob PHP OPcache aktiviert ist oder nicht?
Lesezeit: 4 Minuten
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).
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
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
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
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 Spezialfunktionopcache_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.
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
12989800cookie-checkWie kann festgestellt werden, ob PHP OPcache aktiviert ist oder nicht?yes
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