
Wenn ich kleine Änderungen an meiner Website vornehme und sie hochlade, dauert es normalerweise ein paar Minuten, bis diese Änderungen live angezeigt werden. Das passierte erst, nachdem ich über Google Compute Engine ein neues Debian-System installiert hatte.
Ich habe ausgeschlossen, dass ich Code habe, der es zwischenspeichert, aber ist es möglich, dass PHP 5.5.28 oder Debian Dateien zwischenspeichern? Ich habe auch überprüft, ob es nicht am Browser liegt, und habe die Chrome-Option verwendet, um Dateien in den Entwicklertools nicht zwischenzuspeichern.
Antwort1
Sie verwenden PHP 5.5.28, und meiner Erfahrung nach muss jeder, der von PHP 5.3 oder 5.4 auf PHP 5.5 umsteigt, sich über die neue integrierteOPcache (Operationscache)ist standardmäßig aktiviert.
Wenn Sie schon einmalAPC (Alternativer PHP-Cache), der neue integrierte OPcache funktioniert ziemlich genau gleich und ist für Produktionszwecke bei komplexem Code gut geeignet, aber die standardmäßige Aktivierung kann zum Nachteil werden, wenn Sie es gewohnt sind, Dateien hochzuladen und Änderungen sofort anzuzeigen.
Diese Seite macht einen guten Jobzu erklären, was OPcache ist und wie man es optimiert. Aber wenn Sie OPcache noch nicht brauchen, öffnen Sie einfach Ihre PHP-Ini-Datei wie folgt; ich bevorzuge die Verwendungnano
Sie können aber auch jeden beliebigen Texteditor verwenden:
sudo nano /etc/php5/apache2/php.ini
Suchen Sie nach der Zeile:
opcache.enable=1
Und deaktivieren Sie es einfach, indem Sie die Zeile wie folgt ändern:
;opcache.enable=0
Starten Sie Apache neu und PHP 5.5 verwendet nun OPcache nicht mehr. Und ehrlich gesagt sollte die Aktivierung eines solchen Caches eine Entscheidung des Systemadministrators sein und dessen Wissen darüber, wie der Code funktioniert und wie der Server reagiert
Wenn Ihre PHP-basierte Site leicht genug ist, ist OPcache möglicherweise einfach übertrieben, wird wirklich nicht benötigt und könnte sogar im Weg sein.
Wenn Sie jedoch OPcache benötigen und auch regelmäßig PHP-Dateien aktualisieren müssen,das Anpassen der OPcache-Konfigurationseinstellungen würde helfenDie Standardeinstellungen sind ungefähr so:
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
Der entscheidende Punkt, der meiner Meinung nach in dieser Konfiguration ein erwartetes Update verhindern könnte, istopcache.revalidate_freq
:
Gibt an, wie oft die Zeitstempel des Skripts auf Aktualisierungen überprüft werden sollen (in Sekunden). 0 führt dazu, dass OPcache bei jeder Anforderung nach Aktualisierungen sucht.
Der Standardwert von 60 Sekunden ist in Ordnung, ich denke aber, dass eine Reduzierung opcache.revalidate_freq
auf etwa 5 Sekunden eine bessere Möglichkeit wäre, die Vorteile von OPcache zu nutzen und dennoch ein angemessenes Fenster für die Update-Prüfung zu haben, sodass man nicht durch einfache Dateiupdates aus dem Takt gerät.