{% extends 'admin/shell.html.twig' %} {% set nav = 'system' %} {% block title %}System{% endblock %} {% block heading %}System und Update{% endblock %} {% block lead %}Welche Fassung läuft, ob ein Update möglich ist, und der Weg dorthin: sichern, Wartungszustand, Code wechseln, migrieren, Rauchtest.{% endblock %} {% block content %}
/{{ adminPath }}
{% if adminPath == 'admin' %}
– die Adresse, die jeder Scanner zuerst probiert. Ändern mit php bin/console cms:admin:path <neu>; sie steht danach in .env.local und in keiner öffentlichen Datei.
{% else %}
– geändert. Sie wird in der robots.txt nicht genannt; notiere sie dir an einem sicheren Ort. Zurück mit php bin/console cms:admin:path admin.
{% endif %}
{{ state.describe }}{% if state.commit != 'unbekannt' %} · Commit {{ state.commit }}{% endif %}v1.2.3 in der Herkunft gefunden.
{% else %}
Beim Repository nachfragen
{% endif %}
Die Website antwortet Besuchern gerade mit 503. Wenn das nicht beabsichtigt ist, hebe den Wartungszustand auf – ein gescheitertes Update kann ihn eingeschaltet gelassen haben.
{% endif %}Der Updater sichert zuerst Datenbank und Umgebungsdateien, schaltet den Wartungszustand ein, wechselt auf den Tag, installiert Abhängigkeiten, migriert, räumt den Cache und prüft, ob die Installation antwortet. Scheitert ein Schritt, wird auf den vorherigen Stand zurückgesetzt – und nur wenn die Migration schon begonnen hatte, auch die Datenbank zurückgeschrieben.
Der Medienordner wird nicht gesichert. Er ist zu groß, und kein Update schreibt darin. Ein Update ist keine Datensicherung.
Auf manchen Hostings bricht ein Browseraufruf nach kurzer Zeit ab. Dann ist php bin/console cms:update der verlässliche Weg – dort gibt es dieselben Schritte mit --check, --dry-run und --to=v1.2.0.
Eine Sicherung enthält die Datenbank als vollständige Kopie – nicht als Dateikopie während des Schreibens, die unbrauchbar sein kann – und den Medienordner. Nicht enthalten sind .env, vendor/ und der Quellcode: die kommen aus dem Repository, und .env enthält das Geheimnis dieser Installation.
Zurückspielen geht bewusst nur auf der Konsole: php bin/console cms:restore <name>. Ein Knopf, der die ganze Datenbank ersetzt, gehört nicht neben einen, der eine Seite speichert. Für den täglichen Cronjob: php bin/console cms:backup.
| Name | Erstellt | Fassung | Inhalt | Größe | Zustand |
|---|---|---|---|---|---|
{{ backup.name }} |
{{ backup.manifest ? backup.manifest.erstellt|date('d.m.Y H:i') : '—' }}{% if backup.manifest %} {{ backup.manifest.anlass }}{% endif %} |
{{ backup.manifest ? backup.manifest.fassung : '—' }} | {% if backup.manifest %}{{ backup.manifest.inhalt.seiten }} Seiten, {{ backup.manifest.medien.dateien }} Dateien{% else %}—{% endif %} | {{ (backup.bytes / 1048576)|number_format(1, ',', '.') }} MB | {% if backup.intact %}unversehrt{% else %}Prüfsumme falsch{% endif %} |
„Unversehrt“ heißt: die Prüfsumme der gesicherten Datenbank stimmt noch mit dem Manifest überein. Stimmt sie nicht, wird die Sicherung nicht eingespielt.
{% endif %}Noch kein Update über diesen Weg eingespielt.
{% else %}{{ line }}KantSites · Arbeitsstand
{% endblock %}