WP Super Cache
Dieses Plugin generiert statische HTML-Dateien aus deinem dynamischen WordPress-Blog. Nachdem eine HTML-Datei erzeugt wurde, wird dein Webserver diese Datei ausliefern, anstatt die vergleichsweise schwereren und teureren WordPress-PHP-Skripte zu verarbeiten.
Die statischen HTML-Dateien werden an überwiegende Mehrheit deiner Benutzer ausgespielt:
- Benutzer, die nicht angemeldet sind.
- Benutzer, die keinen Kommentar in deinem Blog hinterlassen haben.
- Oder Benutzer, die keinen kennwortgeschützten Beitrag angesehen haben.
99% deiner Besucher werden statische HTML-Dateien erhalten. Eine Cache-Datei kann tausende Male bedient werden. Andere Besucher werden mit individuellen Cache-Dateien versorgt, die auf ihren Besuch zugeschnitten sind. Wenn sie angemeldet sind oder Kommentare hinterlassen haben, werden diese Details angezeigt und zwischengespeichert.
Das Plugin stellt zwischengespeicherte Dateien auf 3 Arten bereit (geordnet nach Geschwindigkeit):
- Experte. Die schnellste Methode ist die Verwendung von Apache mod_rewrite (oder eines ähnlichen Moduls, das dein Webserver unterstützt), um statische HTML-Dateien im Supercache bereitzustellen. Dies umgeht PHP komplett und ist extrem schnell. Wenn dein Server von einer Flut von Anfragen heimgesucht wird, kann er diese eher bewältigen, da die Anfragen „leichter“ sind. Dies erfordert das Apache mod_rewrite Modul (das wahrscheinlich installiert ist, wenn du benutzerdefinierte Permalinks hast) und eine Änderung deiner .htaccess Datei, die riskant ist und deine Seite zum Absturz bringen kann, wenn sie falsch geändert wird.
- Einfach. Supercached statische Dateien können von PHP bedient werden und dies ist die empfohlene Art, das Plugin zu verwenden. Das Plugin bedient eine „supercached“ Datei, wenn sie existiert, und ist fast so schnell wie die mod_rewrite-Methode. Es ist einfacher zu konfigurieren, da die .htaccess-Datei nicht geändert werden muss. Du brauchst immer noch einen eigenen Permalink. Du kannst Teile deiner Seite in diesem Caching-Modus dynamisch halten.
- WP-Cache-Zwischenspeicherung. Diese wird hauptsächlich verwendet, um Seiten für bekannte Benutzer, URLs mit Parametern und Feeds zwischenzuspeichern. Bekannte Benutzer sind eingeloggte Benutzer, Besucher, die Kommentare hinterlassen oder solche, denen benutzerdefinierte Daten angezeigt werden sollen. Es ist die flexibelste Caching-Methode und etwas langsamer. WP-Cache cacht auch die Besuche von unbekannten Nutzern, wenn Supercaching deaktiviert ist. In diesem Modus kannst du auch dynamische Teile deiner Seite anzeigen lassen. Dieser Modus ist immer aktiviert, aber du kannst das Caching für bekannte Nutzer, URLs mit Parametern oder Feeds separat deaktivieren. Setze die Konstante „DISABLE_SUPERCACHE“ in deiner wp-config.php auf 1, wenn du nur WP-Cache-Caching verwenden willst.
Wenn du dich mit der Bearbeitung von PHP-Dateien nicht wohlfühlst, dann benutze den einfachen Modus. Er ist einfach einzurichten und sehr schnell.
Empfohlene Einstellungen
- Einfaches Caching.
- Seiten komprimieren.
- Seiten für bekannte Benutzer nicht cachen.
- Cache-Neuaufbau.
- CDN-Unterstützung.
- Zusätzliche Homepage-Checks.
Die Garbage Collection ist der Akt der Bereinigung von Cache-Dateien, die veraltet und abgestanden sind. Es gibt keinen korrekten Wert für die Verfallszeit, aber ein guter Ausgangspunkt sind 1800 Sekunden.
Erwäge den Inhalt der Textbox „Abgelehnte User Agents“ zu löschen und lasse Suchmaschinen Dateien für dich zwischenspeichern.
Lade so viele Beiträge wie möglich vor und aktiviere den „Vorlade-Modus“. Das Sammeln von Müll aus alten Cache-Dateien wird deaktiviert. Wenn du dich nicht darum kümmerst, dass die Widgets in der Seitenleiste oft aktualisiert werden, setze das Intervall für das Vorladen auf 2880 Minuten (2 Tage), damit deine Beiträge nicht so oft neu geladen werden. Wenn der Preload stattfindet, werden die Cache-Dateien für den zu aktualisierenden Beitrag gelöscht und dann neu generiert. Danach wird eine Garbage Collection aller alten Dateien durchgeführt, um veraltete Cache-Dateien zu löschen. Auch wenn der Preload-Modus aktiviert ist, werden die Cache-Dateien gelöscht, wenn Beiträge geändert oder Kommentare abgegeben werden.
Entwicklung
- Die aktive Entwicklung dieses Plugins wird auf GitHub durchgeführt.
- Die Übersetzung des Plugins in verschiedene Sprachen findest du auf der Übersetzungsseite.
Dokumentation
Wenn du mehr Informationen als die folgenden benötigst, kannst du einen Blick auf das Wiki oder die Entwicklerdokumentation werfen.
Vorladen
Du kannst Cache-Dateien für die Beiträge, Kategorien und Schlagworte deiner Website generieren, indem du sie vorinstallierst. Das Preloading besucht jede Seite deiner Website und erzeugt eine zwischengespeicherte Seite, genau wie jeder andere Besucher der Website. Aufgrund der sequentiellen Natur dieser Funktion kann es einige Zeit dauern, bis eine komplette Website vorgeladen ist, wenn es viele Beiträge gibt. Um das Vorladen effektiver zu gestalten, kann es sinnvoll sein, die Garbage Collection zu deaktivieren, damit ältere Cache-Dateien nicht gelöscht werden. Dies geschieht durch Aktivieren von „Preload Mode“ in den Einstellungen. Beachte jedoch, dass Seiten irgendwann veraltet sind, aber dass Aktualisierungen durch Einreichen von Kommentaren oder Bearbeiten von Beiträgen Teile des Caches leeren werden.
Garbage Collection
Dein Cache-Verzeichnis füllt sich im Laufe der Zeit, was Platz auf deinem Server einnimmt. Wenn der Platz begrenzt ist oder nach Kapazität abgerechnet wird, oder wenn du befürchtest, dass die zwischengespeicherten Seiten deiner Website veraltet sind, dann muss die Müllabfuhr durchgeführt werden. Die Garbage Collection findet regelmäßig statt und löscht alte Dateien im Cache-Verzeichnis. Auf der Seite mit den erweiterten Einstellungen kannst du Folgendes angeben: 1. Cache-Timeout. Wie lange Cache-Dateien als frisch gelten. Nach dieser Zeit sind sie veraltet und können gelöscht werden. 2. Zeitplaner. Lege fest, wie oft die Garbage Collection durchgeführt werden soll. 3. Benachrichtigungs-E-Mails. Du kannst über den Fortschritt der Garbage Collection informiert werden. Es gibt keine richtigen oder falschen Einstellungen für die Garbage Collection. Es hängt von deiner eigenen Website ab. Wenn deine Website regelmäßig aktualisiert oder kommentiert wird, stelle den Timeout auf 1800 Sekunden und den Timer auf 600 Sekunden ein. Wenn deine Website überwiegend statisch ist, kannst du die Garbage Collection deaktivieren, indem du 0 als Timeout eingibst oder einen wirklich großen Timeout-Wert verwendest.
Das Cache-Verzeichnis, normalerweise wp-content/cache/, ist nur für temporäre Dateien gedacht. Lege niemals wichtige Dateien oder Symlinks zu wichtigen Dateien oder Verzeichnissen in diesem Verzeichnis ab. Sie werden gelöscht, wenn das Plugin Schreibzugriff auf sie hat.
CDN
Ein Content-Delivery-Network (CDN) ist in der Regel ein Netzwerk von Computern auf der ganzen Welt, das den Inhalt deiner Website schneller bereitstellt, indem es Server in deiner Nähe nutzt. Statische Dateien wie Bilder, Javascript und CSS-Dateien können über diese Netzwerke bereitgestellt werden, um das Laden deiner Website zu beschleunigen. Du kannst auch ein „Arme-Leure-CDN“ schaffen, indem du eine Subdomain deiner Domain verwendest, um auch statische Dateien bereitzustellen.
OSSDL CDN off-linker wurde in WP Super Cache integriert, um grundlegende CDN-Unterstützung zu bieten. Es funktioniert, indem es die URLs der Dateien (außer .php-Dateien) in wp-content und wp-includes auf deinem Server umschreibt, sodass sie auf einen anderen Hostnamen zeigen. Viele CDNs unterstützen origin pull. Das bedeutet, dass das CDN die Datei automatisch von deinem Server herunterlädt, wenn sie zum ersten Mal angefordert wird, und sie für eine konfigurierbare Zeitspanne bereitstellt, bevor sie erneut von deinem Server heruntergeladen wird.
Konfiguriere dies auf der Registerkarte „CDN“ der Plugin-Einstellungsseite. Dies ist eine fortgeschrittene Technik und erfordert ein grundlegendes Verständnis dafür, wie dein Webserver oder CDNs funktionieren. Bitte stelle sicher, dass du den Dateicache löschst, nachdem du das CDN konfiguriert hast.
REST-API
Es gibt nun REST-API-Endpunkte für den Zugriff auf die Einstellungen dieses Plugins. Nur wenn du als Admin-Benutzer angemeldet bist, hast du die Berechtigung, die Einstellungsseite anzuzeigen, um sie zu verwenden. Dies ist noch nicht dokumentiert, aber du kannst den gesamten Code, der sich damit beschäftigt, im Verzeichnis „rest“ finden.
Individuelles Caching
Es ist jetzt möglich, sich mit der Funktion add_cacheaction() in den Caching-Prozess einzuhängen.
Drei Hooks sind verfügbar:
- ‚wp_cache_get_cookies_values‘ – Ändere den von WP Cache verwendeten Schlüssel.
- ‚add_cacheaction‘ – läuft in Phase 2. Ermöglicht es einem Plugin, WordPress-Hooks hinzuzufügen.
- ‚cache_admin_page‘ – wird auf der Verwaltungsseite ausgeführt. Damit kannst du diese Seite ändern, z. B. indem du neue Konfigurationsoptionen hinzufügst.
Es gibt auch einen regulären WordPress-Filter. Verwende den „do_createsupercache“ -Filter, um die Prüfungen vor dem Caching anzupassen. Der Filter akzeptiert einen Parameter. Die Ausgabe der Funktion wp_cache_get_cookies_values() von WP-Cache.
WP Super Cache verfügt über ein eigenes Plugin-System. Dieser Code wird beim Laden von WP Super Cache geladen und kann benutzt werden, um die Art und Weise der Zwischenspeicherung zu ändern. Dies geschieht, bevor die meisten WordPress-Dateien geladen werden, so dass einige Funktionen nicht verfügbar sind. Plugins können sich überall dort befinden, wo PHP sie laden kann. Du kannst auch dein eigenes Plugin hinzufügen:
- indem du dein Plugin in das Verzeichnis wp-content/plugins/wp-super-cache-plugins legst, oder
- durch den Aufruf von wpsc_add_plugin( $name ), wobei $name der vollständige Dateiname und Pfad zum Plugin ist. Du musst diese Funktion nur einmal aufrufen, um sie hinzuzufügen. Benutze wpsc_delete_plugin( $name ), um sie aus der Liste der geladenen Plugins zu entfernen.
Die Cookies, die der WP Super Cache zur Identifizierung „bekannter Benutzer“ verwendet, können nun geändert werden, indem die Namen dieser Cookies in der Plugin-Konfiguration zu einer Liste hinzugefügt werden. Verwende wpsc_add_cookie( $name), um ein neues Cookie hinzuzufügen, und wpsc_delete_cookie( $name), um es zu entfernen. Die Cookie-Namen modifizieren auch die vom Plugin verwendeten mod_rewrite Regeln, aber ich empfehle die Verwendung des Simple Mode Caching, um Komplikationen beim Aktualisieren der .htaccess-Datei zu vermeiden. Der Cookie-Name und -Wert werden verwendet, um Benutzer zu unterscheiden, so dass du z.B. ein Cookie haben kannst, aber unterschiedliche Werte für jeden Typ von Benutzern auf deiner Website. Sie werden mit verschiedenen Cache-Dateien bedient.
Siehe plugins/searchengine.php als Beispiel für mein No Adverts for Friends Plugin.
Problembehandlung
Wenn die Dinge nicht funktionieren, wenn du das Plugin installiert hast, gibt es ein paar Dinge zu überprüfen:
- Ist wp-content für den Webserver schreibbar?
- Gibt es eine wp-content/wp-cache-config.php? Wenn nicht, kopiere die Datei wp-super-cache/wp-cache-config-sample.php nach wp-content/wp-cache-config.php und stelle sicher, dass WPCACHEHOME auf die richtige Stelle zeigt.
- Gibt es eine wp-content/advanced-cache.php? Wenn nicht, dann musst du die Datei wp-super-cache/advanced-cache.php nach wp-content/ kopieren. Du musst die Datei bearbeiten und den Pfad so ändern, dass er auf den wp-super-cache Ordner zeigt.
- Wenn die Seiten überhaupt nicht gecached werden, entferne die Datei wp-content/advanced-cache.php und erstelle sie neu, indem du die oben genannten Ratschläge befolgst.
-
Vergewissere dich, dass die folgende Zeile in der wp-config.php steht und zwar ÜBER der Zeile „require_once(ABSPATH.‚wp-settings.php‘);“:
define( 'WP_CACHE', true ); - Probiere die Seite Einstellungen->WP Super Cache erneut aus und aktiviere den Cache.
- Schau in wp-content/cache/supercache/. Gibt es dort Verzeichnisse und Dateien?
- Irgendwas in deiner php error_log?
- Wenn dein Browser dich immer wieder auffordert, die Datei zu speichern, nachdem der Super-Cache installiert wurde, musst du die Super-Cache-Komprimierung deaktivieren. Gehe auf die Seite Einstellungen->WP Super Cache und deaktiviere ihn dort.
- Das Plugin funktioniert nicht sehr gut, wenn der Safe Mode von PHP aktiv ist. Diesen muss dein Administrator deaktivieren.
- Wenn Seiten mal super gecacht werden und mal nicht, kann dein Blog wahrscheinlich mit und ohne das „www“-Präfix in der URL angezeigt werden. Du solltest dich für einen Weg entscheiden und das Plugin www-Präferenz erzwingen installieren, wenn du eine alte WordPress-Installation verwendest. Die neuesten Versionen leiten sich selbst um (du solltest sowieso immer die neueste Version von WordPress verwenden!)
- Private Server-Benutzer bei Dreamhost sollten die Datei wp-content/wp-cache-config.php bearbeiten und das Cache-Verzeichnis auf „/tmp/“ setzen, wenn sie Fehler wegen erhöhter CPU-Auslastung erhalten. Siehe diese Diskussion für mehr.
- Fehler beim Sperren von Dateien wie „Schlüssel 0x152b konnte nicht erfasst werden: Permission denied in…„ oder“Page not cached by WP Super Cache. Could not get mutex lock.“ sind ein Zeichen dafür, dass du möglicherweise eine Dateisperre verwenden musst. Bearbeite wp-content/wp-cache-config.php und entferne den Kommentar „$use_flock = true“ oder setze $sem_id auf einen anderen Wert. Als letzten Ausweg kannst du die Dateisperre auch über den Admin-Bildschirm deaktivieren.
- Vergewissere dich, dass cache/wp_cache_mutex.lock vom Webserver beschreibbar ist, wenn du grobes Dateisperren verwendest.
- Der Cache-Ordner kann nicht auf eine NFS-, Samba- oder NAS-Freigabe gelegt werden. Er muss sich auf einer lokalen Festplatte befinden. Das Sperren von Dateien und das Löschen von abgelaufenen Dateien funktioniert nur, wenn sich der Cache-Ordner auf dem lokalen Rechner befindet.
-
Die Garbage Collection alter Cache-Dateien funktioniert nicht, wenn WordPress die wp-cron.php nicht finden kann. Wenn dein Hostname nach 127.0.0.1 aufgelöst wird, könnte dies die Garbage Collection verhindern. Überprüfe deine access_logs auf Einträge in der wp-cron.php. Geben sie einen 404 (Datei nicht gefunden) oder 200 Code zurück? Wenn es 404 ist oder du nirgendwo wp-cron.php siehst, sucht WordPress vielleicht am falschen Ort nach diesem Skript. Du solltest mit deinem Serveradministrator sprechen, um dies zu korrigieren, oder auf Unix-Servern die Datei /etc/hosts bearbeiten und die folgende Zeile entfernen. Dein Hostname muss zu der externen IP-Adresse aufgelöst werden, die andere Server im Netzwerk/Internet verwenden. Siehe http://yoast.com/wp-cron-issues/ für weitere Informationen. Eine Zeile wie „127.0.0.1 localhost localhost.localdomain“ ist in Ordnung.
127.0.0.1 example.com - Wenn deinen Besuchern über den Supercache alte Seiten angezeigt werden, fehlen dir möglicherweise Apache-Module (oder ihre Entsprechungen, wenn du keinen Apache verwendest). 3 Module sind erforderlich: mod_mime, mod_headers und mod_expires. Die letzten beiden sind besonders wichtig, um sicherzustellen, dass die Browser neue Versionen von bestehenden Seiten auf deiner Website laden.
- Die Fehlermeldung „WP Super Cache ist installiert, aber defekt. Der Pfad zu wp-cache-phase1.php in wp-content/advanced-cache.php muss korrigiert werden!“ erscheint am Ende jeder Seite. Öffne die Datei wp-content/advanced-cache.php in deinem Lieblingseditor. Ist der Pfad zu wp-cache-phase1.php korrekt? Diese Datei befindet sich normalerweise in wp-content/plugins/wp-super-cache/. Wenn sie nicht korrekt ist, wird die Cache-Engine nicht geladen.
- Das Caching funktioniert nicht. Der Zeitstempel in meinem Blog ändert sich ständig, wenn ich neu lade. Überprüfe, ob der Pfad in deinen .htaccess-Regeln mit dem Verzeichnis des Supercaches übereinstimmt. Möglicherweise musst du ihn hartcodieren. Versuche, den Supercache-Modus zu deaktivieren.
-
Wenn Supercache-Cache-Dateien generiert, aber nicht ausgeliefert werden, überprüfe die Berechtigungen für alle wp-content/cache/supercache-Ordner (und alle wp-content cache- und supercache-Ordner) und wp-content/cache/.htaccess. Wenn dein PHP unter einem anderen Benutzer läuft als der Apache und die Berechtigungen streng sind, kann der Apache die von PHP erzeugten Cache-Dateien möglicherweise nicht lesen. Um das zu beheben, musst du die folgende Zeile in deine wp-config.php einfügen (oberhalb der WP_CACHE-Definition) und dann deinen Cache löschen.
umask( 0022 ); -
Wenn du Müll in deinem Browser siehst, nachdem du die Komprimierung im Plugin aktiviert hast, kann es sein, dass die Komprimierung bereits auf deinem Webserver aktiviert ist. Im Apache musst du mod_deflate deaktivieren, oder in PHP kann die zlib-Kompression aktiviert sein. Du hast drei Möglichkeiten, diese zu deaktivieren. Wenn du Root-Zugriff hast, bearbeite deine php.ini und suche die Einstellung zlib.output_compression und stelle sicher, dass sie auf „Off“ steht oder füge diese Zeile zu deiner .htaccess hinzu:
php_flag zlib.output_compression offWenn das nicht funktioniert, füge diese Zeile in deiner wp-config.php ein:
ini_set('zlib.output_compression', 0); - Der „weiße Bildschirm des Todes“ oder eine leere Seite, wenn du deine Website besuchst, wird fast immer durch einen PHP-Fehler verursacht, aber es kann auch durch APC verursacht werden. Deaktiviere diese PHP-Erweiterung, wenn du Probleme hast, und ersetze sie durch eAccelerator oder Xcache.
- Nach der Deinstallation können deine Permalinks kaputt gehen, wenn du auch die WordPress mod_rewrite-Regeln entfernst. Erstelle diese Regeln neu, indem du die Seite Einstellungen->Permalink aufrufst und das Formular erneut speicherst.
- Wenn dein Blog nicht geladen werden kann, überprüfe, ob deine wp-config.php korrekt ist. Fehlt dir ein öffnender oder schließender PHP-Tag?
- Your front …
