Drupal beschleunigen

Author: 
Sven Donike

Kennen Sie das? Ihre Drupal-Website reagiert träge und das surfen auf der Seite macht immer weniger Spaß? Dann sollten Sie sich mit dem Thema Caching vertraut machen. Hier ein paar Tipps, wie Sie mit drei einfachen Maßnahmen die Geschwindigkeit Ihrer Drupal-Website signifikant beschleunigen können.

Views

Mit Views können Übersichtsseiten oder Tabellen erstellt werden. Die Berechnung solcher Seiten ist sehr aufwendig, da im Hintergrund eine ganze Reihe an Datenbankabfragen durchlaufen werden müssen. Da sich der Inhalt einer View aber nicht andauernd ändern muss, kann der Inhalt gecached werden. Und so geht’s:

Gehen Sie in die Views (Ansichten)-Verwaltung unter: admin/structure/views/settings und machen Sie den Views-Master für alle Views sichtbar (Hacken bei: „Always show advanced display settings“ setzen.) Vorsicht! Alle Änderungen, die am Master vorgenommen werden, übernimmt das System für alle Unterseiten der konkreten View.

Nun können Sie die Cachefunktion im jeweiligen Views-Master für alle Views setzen (Vorsicht bei Views, die einen Block berechnen funktioniert es anders).

Suchen Sie sich über admin/structure/views die View aus, die Sie cachen möchten.

Nehmen Sie die bevorzugten Einstellungen vor. Sie haben die Wahl zwischen Content-Based oder Time-Based. Wählen Sie die erste Option, so können Sie zusätzlich festlegen, ob eine Veränderung eines bestimmten Inhalts dazu führt, dass die View neu gecached wird, damit die Veränderung direkt angezeigt werden kann. Ebenfalls können sie die Cache-Lebensdauer konfigurieren. Schon wird der berechnete Inhalt der View in der Datenbank abgelegt und die Seite reagiert schneller.

Bei einem Block, der von einer View berechnet wird, funktioniert es etwas anders. Hier können keine Einstellungen durch den View-Master vorgegeben werden. Jeder Block muss einzeln konfiguriert werden.

Klicken Sie rechts unten auf „Cache Block“ und nehmen Sie die jeweiligen Einstellungen vor.

Merke: Wenn Views cachen, dann muss ihr Cache gesondert geleert werden. Dies geht unter: admin/structure/views/settings/advanced

Einen Nachteil hat dieser Ansatz jedoch: Drupal muss immer noch eine Datenbank-Abfrage durchführen, was Zeit kostet. Wollen Sie Ihre Seiten also kompromisslos auf Geschwindigkeit trimmen so gibt es noch einen wesentlich leistungsfähigeren Ansatz – Das Boost-Modul.

Boost

Boost legt jede Seite als HTML-Datei auf dem Server ab. Hierdurch werden nur noch statische Seiten ausgeliefert, was den serverseitigen Aufwand auf ein Minimum reduziert.

Laden Sie Boost unter https://www.drupal.org/project/boost herunter und installieren Sie das Modul wie gewohnt. Ist das Modul installiert, so muss eine erste Konfiguration vorgenommen werden. Konfigurieren Sie es unter: admin/config/system/boost

Vorsicht: Sie müssen das Caching für Inhaltsseiten über die Boost Cache-Typ-Einstellungen erst aktivieren, ansonsten passiert nichts!

Zusätzlich muss unter: admin/config/development/performance die Funktion „Seiten für anonyme Benutzer cachen“ deaktiviert werden. Dies übernimmt nun Boost!

Ist alles eingestellt, so muss noch unter: admin/config/system/boost/htaccess die Konfiguration der .htaccess-Datei innerhalb des Drupal-Hauptordners vorgenommen werden. Kommt es hier zu Fehlern, so wird Boost nicht funktionieren. Sollte es aber zu Fehlern kommen, so muss man an genau dieser Konfiguration Änderungen vornehmen. Zunächst kann man es jedoch mit den Standardeinstellungen probieren.

Nun noch der wichtigste Schritt: Wechseln Sie zu admin/config/system/boost/htaccess/generator und lassen Sie sich die Boost-Konfiguration für Ihre .htaccess-Datei im Hauptordner generieren. Kopieren Sie diese und tragen Sie sie in der .htaccess-Datei unter folgender Stelle ein:

# If your site is running in a VirtualDocumentRoot at http://example.com/,

# uncomment the following line:

# RewriteBase /

So, nun sollte die Website für anonyme User gecached werden. Nach zwei anonymen Reloads sollten Sie eine enorme Geschwindigkeitssteigerung wahrnehmen können.

Boost mit Contextual Display kombinieren

Jetzt wird’s etwas komplizierter aber auch Leistungsfähiger. In Zeiten des Responsive Designs, kann der eine oder andere auf Die Idee kommen über das Modul https://www.drupal.org/project/contextual_view_modes

Und das Modul: https://www.drupal.org/project/context_breakpoint dafür zu sorgen, dass je nach Web-Auflösung des verwendeten Viewports durch geeignete Media-Queries (Context Breakpoints) serverseitig komplett andere Displays geladen werden. Zu konfigurieren unter: admin/structure/types/manage/CONTENTTYPE/display dies hat den Vorteil, dass Inhalte für jeden Viewport komplett unabhängig positioniert werden können und nicht durch die reinen CSS Möglichkeiten und Media-Queries innerhalb der CSS Dateien beschränkt sind.

Hat man nun aber verschiedene Displays für verschiedene Media-Queries (= Viewports) konfiguriert, do stellt man fest, dass nur noch das beim cachen angezeigte Display in den Boost-Cache wandert und von nun an angezeigt wird. Um dieses Problem zu lösen, muss das Boost Modul gepatched werden. Hierzu gibt es unter:   https://www.drupal.org/node/1973266 den passenden Patch. Auch die Version 1 von Boost kann damit gepatcht werden. Ist das Modul erfolgreich gepatcht, so muss in der Konfiguration des  Contextual Breakpoint-Moduls noch eine Anpassung vorgenommen werden.

Unter: admin/config/media/context-breakpoint muss ein Häckchen bei “Save resolution in cookie” gesetzt werden. Zudem muss unter: admin/config/system/boost bei dem nun neu verfügbaren Feld: „Cookie inclusions“ das korrekte Cookie des Contextual Breakpoint Moduls angeben werden. Es lautet: „context_breakpoints“. Nach dem Speichern muss unter admin/config/system/boost/htaccess/generator eine neue Version der .htaccess Einträge von Boost berechnet werden. Diese Einträge müssen statt der alten Boosteinträge in die .htaccess-Datei kopiert werden. Nun sollten verschiedene Versionen der Seite für die festgelegten Media-Queries berechnet werden.

Die JS-Dateien ans Ende der HTML-Dokumente verlagern

Zum Schluss noch ein Tipp : Die Geschwindigkeit des Seitenaufbaus kann beschleunigt werden, wenn die Javascript-Dokumente erst am Schluss des HTML-Dokuments geladen werden. Dies kann bei manchen Standard-Bibliotheken aber zu Problemen führen. Am besten geht dies mit dem Modul Magic: https://www.drupal.org/project/magic einfach installieren und dann im verwendeten Theme unter dem neuen Punkt „Javascript Enhancements“ (ganz unten) die Konfiguration vornehmen.

Database Logging deaktivieren

Noch ein letzter Tipp: Schalten Sie auf einer Live-Seite das Database-Logging aus. Dies verhindert einen weiteren Schreibvorgang. Unter: admin/modules nach „database logging“ suchen und dieses Modul ausschalten.

Bewertung: 

Noch keine Bewertungen vorhanden

Tags
Online

Weitere Themen

Feed abonnieren