
Wie sichert man Drupal? Überblick über das Backup and Migrate-Modul
Beim Erstellen von Websites müssen Sie oft schnell Daten sichern, die nicht in Ihrem Code-Repository sind. Im Fall von Drupal ist es möglich, Kopien über das Modul "Backup and Migrate" zu erstellen.
Dieses Modul bietet Optionen sowohl für Anfänger als auch für fortgeschrittene Benutzer. In diesem Artikel werde ich seine Funktionen im Detail vorstellen.
Daten
Das Modul wurde Ende 2007 für Drupal 5 veröffentlicht. Seitdem wurde es umfangreich aktualisiert. Der 8.x-3.x-Zweig erschien im Jahr 2015 zusammen mit Drupal 8, hatte jedoch keine stabile Version. Es dauerte weitere drei Jahre, bis die stabile Version 8.x-4.0 das Licht der Welt erblickte.
Beliebtheit des Moduls
Die Beliebtheit des Moduls wird durch die Anzahl der Installationen bestätigt - laut den offiziellen Statistiken wird es von über 220 Tausend Seiten verwendet, darunter ca. 40 Tausend basierend auf Drupal 8.
Die Ersteller des Moduls
Vier Entwickler sind für die Wartung des Moduls verantwortlich:
- Damien McKenna von Mediacurrent
- Alexandru Andrascu von Intellix
- Ronan Dowling von Pantheon
- Drew Gorton von Pantheon
Es gibt 822 Commits im Code-Repository, erstellt von über 70 Personen.
Wozu wird das Modul verwendet?
Backup and Migrate ist ein fortschrittliches Tool zur Erstellung von Sicherungskopien. Es operiert auf der Datenbank sowie auf öffentlichen und privaten Dateien. Es integriert sich mit Drupal CRON und ermöglicht somit regelmäßige Backups an verschiedene Ziele.
Unboxing
Das Modul ist verfügbar unter https://www.drupal.org/project/backup_migrate. Es kann von einer .zip-Datei installiert oder der Befehl composer require drupal/backup_migrate in der Konsole ausgeführt werden.
Das Einstellungen-Administrationspanel finden Sie im Menü Konfiguration → Entwicklung → Backup and Migrate.
Verwendung des Moduls
Das Modul ist sowohl für Anfänger als auch für fortgeschrittene Benutzer konzipiert. Erstere müssen sich nicht mit der Konfiguration des Datenexports auseinandersetzen, sie müssen nur die Schnellsicherungsoption verwenden:
Ein Klick auf "Jetzt sichern" lädt die Datenbank herunter (oder öffentliche/private Dateien, wie im Feld "Sicherungsquelle" ausgewählt). Darüber hinaus wird die Dateisicherung ohne Cache- und Protokolleinträge erfolgen, sodass sie viel weniger Speicherplatz beansprucht.
Im Tab "Erweitert" stehen einige weitere Einstellungen zur Verfügung. Ich werde diese später im Artikel beschreiben.
Sicherungsquellen
Durch Klicken auf Einstellungen → Quellen gelangen Sie zur Liste der verfügbaren Sicherungsquellen.
Standardmäßig können die Quellen sein:
- Datenbanken,
- öffentliche Dateien,
- private Dateien,
- ganzer Seiten-Code samt Datenbank.
Dieses Set kann leicht mit externen MySQL-Datenbanken und beliebigen Verzeichnissen auf dem Server erweitert werden. Dies kann mit der Option "Sicherungsquelle hinzufügen" erfolgen.
Es ist möglich, eigene Quellen über die API des Moduls "Backup and Migrate" zu definieren.
Sicherungsziele
Ein Sicherungsziel ist der Ort, an dem es gespeichert werden soll. Dies kann beispielsweise ein Serververzeichnis oder ein Webbrowser sein. Die verfügbaren Ziele sind in Einstellungen → Ziele aufgelistet.
Wie bei den Quellen können Sie Ihre eigenen Ziele über den Button "Sicherungsziel hinzufügen" und einen entsprechenden Hook definieren. Am Ende des Artikels präsentiere ich einige Module zum Hinzufügen von Zielen wie SFTP-Server und S3-Cloud.
Verschlüsselung
Denken Sie daran, dass Backups sensible Daten enthalten und der Zugang zu ihnen strikt begrenzt sein sollte. Drupal ist eines der sichersten CMS, daher lohnt es sich, das private Dateisystem zu nutzen. Darüber hinaus kommt die Möglichkeit, Dateien mit Backups zu verschlüsseln, gelegen. Um es zu verwenden, fügen Sie die Defuse-Bibliothek mit dem Befehl zum Projekt hinzu:
composer require defuse/php-encryption
Nach dem Löschen des Caches erscheint die Option "Datei verschlüsseln" im Konfigurationspanel des Moduls mit dem Feld zur Eingabe eines Passworts. Es wird verwendet, um die erzeugten Archive zu verschlüsseln.
Erweiterte Sicherung
Ich habe bereits behandelt, wie eine schnelle Sicherung erstellt wird. Es ist Zeit für ihre etwas fortgeschrittenere Version, die Sie im Tab "Sicherung" → "Erweiterte Sicherung" finden.
Hier ein kurzer Überblick über die verfügbaren Optionen:
- Quelle - zum Auswählen einer vordefinierten Quelle.
- Sicherungsdatei - ermöglicht die Konfiguration des Namens und Formats der Sicherungsdatei.
- Sicherung Verschlüsselung - ermöglicht die Verschlüsselung des Archivs.
- Website offline nehmen - schaltet die Website während der Erstellung ihrer Sicherung aus.
- Datenbanktabellen ausschließen - ermöglicht es, ausgewählte Tabellen in der Datenbank (oder nur deren Inhalte) von der Sicherung auszuschließen.
- Dateien ausschließen - zum Ausschließen ausgewählter Dateien bei der Erstellung einer Verzeichniskopie.
- Ziel - ermöglicht die Auswahl des Sicherungsziels.
Wenn Sie ein solches Set erweiterter Optionen für die Zukunft speichern möchten, werfen Sie einen Blick auf die Profile im Tab "Einstellungen" → "Einstellungsprofile".
Sicherungsliste
Alle Sicherungen auf dem Server sind in der Liste "Gespeicherte Sicherungen" aufgeführt.
Interessanterweise funktioniert diese Liste auch beim Speichern von Sicherungen auf SFTP- und S3-Servern.
Sicherungswiederherstellung
Weniger häufig benötigt, aber dennoch eine äußerst interessante Option ist die Wiederherstellung der Website aus einem Backup. Zu diesem Zweck können Sie entweder eine der oben präsentierten Kopien oder eine beliebige Datei über das Formular hochladen.
Planung
Die letzte wichtige Funktionalität des Backup and Migrate Moduls ist die Möglichkeit, Sicherungspläne zu erstellen.
Hier haben Sie alles, was Sie brauchen, um einen effizienten Sicherungsmechanismus zu erstellen. Diese Aktionen werden mit den Drupal-CRON-Funktionalitäten ausgeführt. Daher ist keine zusätzliche Serverkonfiguration erforderlich.
Hooks und Integrationen
Backup and Migrate bietet einen grundlegenden Hook hook_backup_migrate_service_object_alter(), mit dem praktisch der gesamte Motor des Moduls geändert werden kann. Hier werden zusätzliche Plugins und Filter definiert. Sie können die folgenden Elemente definieren:
- Sicherungsquellen - standardmäßig sind dies die Datenbank, öffentliche/private Dateien und die gesamte Website samt Quellcode.
- Sicherungsziele - wie Cloud-Speicher oder lokaler Verzeichnisspeicher.
- Filter, die die erzeugten Archive modifizieren - z. B. Verschlüsselung.
Auf der Basis des oben genannten Mechanismus wurden viele Hilfsmodule erstellt, die die Integration mit externen Anbietern von Speicherplatz bieten. Leider laufen die meisten von ihnen nur unter Drupal 7. Dazu gehören:
- Backup and Migrate AWS S3 - fügt die Unterstützung für Amazon S3-Server hinzu.
- Backup and Migrate Flysystem - fügt Flysystem-Unterstützung hinzu.
- Backup and Migrate Yandex Disk - fügt Unterstützung für das kostenlose Yandex Disk hinzu.
- Backup and Migrate Prune (nur Drupal 7) - löscht alte Sicherungen gemäß der vom Benutzer festgelegten Regeln.
- Backup and Migrate SFTP (nur Drupal 7) - erlaubt es, Sicherungsdateien auf einen SFTP-Server zu speichern.
- Backup and Migrate Dropbox (nur Drupal 7) - fügt Unterstützung für Dropbox hinzu.
- Backup and Migrate OpenCloud (nur Drupal 7) - fügt Unterstützung für OpenCloud hinzu.
- HPCloud (nur Drupal 7) - fügt Unterstützung für HP Cloud hinzu.
Zusammenfassung
Angesichts neuer Technologien wird das Modul Backup and Migrate manchmal als überflüssig angesehen. Wir verwenden es jedoch in unserer Drupal-Agentur, da es den einfachsten Weg bietet, eine Datenbank und Dateien von einer Drupal-basierten Website herunterzuladen. Es ist einfach einzurichten und funktioniert nahezu sofort.
Im Fall kleinerer Websites kann das Modul nützlich sein als Ergänzung zu einem Standard-Backup. Besonders wenn der Code auf einem gemeinsam genutzten Server liegt, bei dem Sie keinen vollständigen Zugriff auf das System haben.