Standardwerte des statischen Caches
Lesen Sie diese Seite, wenn Sie den statischen Cache (settings/staticcache.ini, bin/php/makestaticcache.php)
verwenden oder verwenden wollen. Vor dieser Änderung erzeugten die ausgelieferten Einstellungen in einer
Standardinstallation nichts. Die neuen Standardwerte funktionieren sofort, was bedeutet, dass sich ein vorhandenes
Override jetzt anders verhalten kann.
Warnung
.htaccessbremst jede Anfrage. Sind.htaccess-Dateien erlaubt (AllowOverridealles außerNone), geschweige denn genutzt, sucht Apache sie bei jeder Anfrage in jedem Verzeichnis des Pfads und liest und wertet sie aus, und die Ladezeiten der Seiten steigen drastisch (gemessen). Die einzige wirkliche Abhilfe ist, die Funktion für den virtuellen Host abzuschalten:AllowOverride Noneim virtuellen HTTPS-Host, und die Regeln in der Konfiguration des virtuellen Hosts selbst als mod_rewrite-Regeln. Das ist in Geschwindigkeitstests im Produktivbetrieb weit schneller und die Zeit für die Optimierung einer Produktivkonfiguration unbedingt wert. Stellen Sie sofort um: Übernehmen Sie die Regeln des Beispiels für einen virtuellen HTTPS-Host in Ihren virtuellen Host (mit dem statischen Cache auchstaticcache_offload.conf), setzen SieAllowOverride None, führen Sieapachectl configtestaus, laden Sie Apache neu und testen Sie die Website. Dieselben Regeln für andere Server: nginx, LiteSpeed, Caddy, IIS, Velocity (eingebaut); wohin Regeln für virtuelle Hosts in einem Control Panel gehören: Plesk, cPanel, DirectAdmin, ISPConfig. Unter LiteSpeed oder OpenLiteSpeed kann zusätzlich der Seiten-Cache des Servers anonyme Besucher und Crawler ohne PHP bedienen: Seiten-Caching mit LiteSpeed und OpenLiteSpeed.
Kurz gesagt
| Was sich geändert hat | Sechs Standardwerte in [CacheSettings] von settings/staticcache.ini; die Dateien gehen jetzt nach var/<site>/static. |
| Wer betroffen ist | Installationen, die StaticStorageDir überschreiben, statische Dateien vom Webserver ausliefern oder sich auf das alte CachedURLArray[] verlassen haben. |
| Wie Sie es prüfen | grep -v '^#' settings/staticcache.ini | grep -v '^$' |
| Wie Sie es beheben | Folgen Sie den drei Schritten unter „So beheben Sie es“. |
Was sich geändert hat
Bisher schickte HostName=localhost jeden Abruf an einen Host, der nicht Ihre Website ist, und der Fehler blieb
unbemerkt. Seiten wurden nach ./static im Wurzelverzeichnis der Installation geschrieben, wo kein Cache-Werkzeug
nachsah.
Datei settings/staticcache.ini, Block [CacheSettings], Geltungsbereich: Installation.
| Schlüssel | Vorher | Jetzt |
|---|---|---|
HostName | localhost | leer |
SourceProtocol | existierte nicht | http |
StaticStorageDir | static, also ./static im Wurzelverzeichnis | static, also var/<site>/static |
MaxCacheDepth | 3 | 12 |
CachedURLArray[] | /, /news*, /weblog* | /, /* |
CachedSiteAccesses[] | leer, also nichts | leer, also jeder öffentliche Siteaccess |
So prüfen Sie es
grep -v '^#' settings/staticcache.ini | grep -v '^$'
php bin/php/makestaticcache.php --help --allow-root-userDer erste Befehl gibt die ausgelieferten Standardwerte aus der obigen Tabelle aus. Der zweite listet die Optionen des Generators auf.
So beheben Sie es
- Sie überschreiben
StaticStorageDir=staticund haben Dateien in./static. Behalten Sie entweder dieses Verzeichnis, indem SieStaticStorageDir=/full/path/to/staticsetzen (ein absoluter Pfad wird unverändert verwendet), oder erzeugen Sie den Cache neu und löschen Sie das alte Verzeichnis selbst. - Sie liefern die Dateien vom Webserver aus. Wechseln Sie zu
.htaccess_root_static(oder den Regeln indoc/eng-us/examples/staticcache_offload.conf) und prüfen SieEZ_VAR_SITE..htaccess_rootenthält wieder die einfachen Regeln und liefert keine statischen Dateien aus. - Sie haben sich darauf verlassen, dass
CachedURLArray[]nur/news*und/weblog*aufführt. Setzen Sie diese Zeilen wieder in Ihr Override. Der neue Standard cacht die ganze Website, begrenzt durchMaxCacheDepth.