Erstellt ein Backup einer Contao Installation. Erzeugt werden drei Dateien:
- Datenbankdump
- Sicherung der für eine Wiederherstellung benötigten Dateien
- Sicherung des
files/Verzeichnisses
- bash
- PHP-Cli (passend zur PHP-Version unter der Contao läuft)
mysqldump
- Anpassen der Datei
main.shan den eigenen Bedarf (siehe Kommentare in der Datei) - Aufruf der
main.shmanuell oder periodisch in einem cron-job
# Projektverzeichnis erstellen (z.B.)
mkdir backup/contao
cd backup/contao
git clone https://github.com/fiedsch/contao-4-backup-script
cp contao-4-backup-script/main.sh ./meinbackup.sh
# meinbackup.sh (oder wie auch immer Du die Datei für Dich passend genannt hast)
# bearbeiten und die zur Contao Installation passenden Parameter setzen.
# Dann meinbackup.sh in einen cron job eintragen.Manche Provider stellen nicht alle im Skript benötigten Befehle bereit (sperren den Zugriff). Über spezielle Konfigurationsoptionen soll versucht werden, dies zu berücksichtigen.
In der main.sh
TARauf den WertptarsetzenOSauf den WertLinuxsetzenPURGE_AFTER_DAYSauf0setzen (@mlwebworker: weil der Befehl zum Löschen nicht freigegeben ist. Die Löschung kann dann über Tools → Webspacebereinigung automatisiert werden)DISABLED_FUNCTIONSauf'ls'setzen (ggf. die Liste um weitere deaktivierte Befehle ergänzen; kommaseparierte Liste)
@zonky2: In der main.sh
OSauf den WertLinuxsetzen
@codesache:
mysqlmuss u.U. erst über den Softwaremanager installiert werden (Paket GROW)
Feedback zu weiteren Providern, bei denen es noch nicht gelöste Probleme gibt gerne als Issue in diesem Repository mitteilen - Danke!
- Backup-Dateien in das entsprechende Verzeichnis auf dem Server entpacken
- Datenbankdump einspielen (Datenbank ggf. neu anlegen)
composer install- Aufruf des Contao Installtools im Browser
- Liste der gesicherten Dateien auf "ist alles benötigte dabei" prüfen (möglichst viele Spezialfälle berücksichtigen; Danke für Feedback/"Issues" falls ihr etwas findet!)
- Fehlerprüfungen und ggf. -meldungen
- Siehe Ticket #14 für das wir momentan noch keine
saubere Lösung haben (außer der Verwendung von
DIRECTLY_USE_DEBUG_DOTENV_FOR_DB_CREDENTIALSin der
Aufrufdateimain.sh).