Zum Inhalt springen

Erste Schritte

Aktualisieren

Entpacke ein Archiv nie über eine laufende Installation. Entpacken fügt hinzu und überschreibt, es löscht nicht: Ausgemusterte Dateien blieben liegen und würden weiter geladen, storage/ und bootstrap/cache/ bekämen die Rechte aus dem Archiv, und der alte Config-Cache überlebte.

Paket in der Oberfläche bereitstellen

Einstellungen → Systemdaten zeigt die installierte Fassung und, sofern die Prüfung eingeschaltet ist, ob es eine neuere gibt. Der Knopf Paket bereitstellen lädt das Release-Archiv, hält es gegen die veröffentlichte SHA256-Prüfsumme und entpackt es nach storage/app/private/updates/. Eingespielt wird dabei nichts — der Austausch bleibt ein Befehl auf der Kommandozeile.

Danach steht dieser Befehl auf der Seite, mit dem Pfad dieser Installation schon eingesetzt:

sh storage/app/private/updates/<fassung>/update.sh /pfad/zu/deiner/installation --dry-run
sh storage/app/private/updates/<fassung>/update.sh /pfad/zu/deiner/installation

Es ist dasselbe update.sh wie unten, nur aus einem bereits entpackten Paket.

Ist die Versionsprüfung abgeschaltet, erscheint der Knopf nicht — dann führen die folgenden Wege zum Ziel. Schalter und Vorgabewert: Systemeinstellungen.

Der Weg: Setup-Skript

Derselbe Aufruf wie bei der Installation. Das Skript erkennt die vorhandene Installation und übergibt an das update.sh aus dem neu geladenen Paket:

curl -fLO https://gitlab.com/mankeldor/shortlink/-/raw/main/shortlink-setup.sh
sh shortlink-setup.sh /pfad/zu/deiner/installation --dry-run
sh shortlink-setup.sh /pfad/zu/deiner/installation

Hier läuft das Skript vollständig durch — anders als bei der Erstinstallation, wo es vor der Einrichtung endet. Die .env steht bereits, es sind keine Passwörter abzufragen und nichts nachzuholen.

Mit einem vorhandenen Paket: update.sh

tar -xzf shortlink-v5.0.2.tar.gz
cd shortlink-v5.0.2

sh update.sh /pfad/zu/deiner/installation --dry-run
sh update.sh /pfad/zu/deiner/installation

Was es tut, in dieser Reihenfolge:

  1. Prüft, dass das Ziel eine Shortlink-Installation ist (artisan, composer.json, app/Support/Installer.php, .env).
  2. Sichert Datenbank, .env und Programmstand nach ../shortlink-backup-<zeitstempel>/. Scheitert die Sicherung, bricht es ab, bevor etwas angefasst wurde. --skip-backup überstimmt das, --yes überspringt die Rückfragen.
  3. Schaltet den Wartungsmodus ein.
  4. Ersetzt die Dateien und entfernt die, die es in der neuen Fassung nicht mehr gibt — mit rsync, wenn vorhanden, sonst mit einem Kopiervorgang und anschließendem Aufräumen anhand der Dateiliste des Pakets. Unangetastet bleiben .env, storage/, public/storage, bootstrap/cache/ und vendor/.
  5. composer install, shortlink:check, migrate --force, Caches, Wartungsmodus aus.

Scheitert etwas nach Schritt 4, bleibt die Installation im Wartungsmodus. Das Skript schreibt dann hin, wie du zurückkommst.

Von Hand

mysqldump --single-transaction --quick -u <user> -p <db> | gzip > db-$(date +%F).sql.gz
cp .env ~/env-$(date +%F).bak

cd /pfad/zu/deiner/installation
php artisan down --retry=60
rsync --archive --delete \
      --exclude='/.env' --exclude='/storage/' \
      --exclude='/public/storage' --exclude='/bootstrap/cache/' --exclude='/vendor/' \
      ~/shortlink-v5.0.2/ ./
composer install --no-dev --optimize-autoloader
php artisan shortlink:check
php artisan migrate --force
php artisan config:cache && php artisan route:cache && php artisan view:cache
php artisan up

Migrationen laufen vorwärts. Es gibt keinen Weg zurück außer der Sicherung aus der ersten Zeile.

Danach

Die .env bleibt unangetastet. Neue Schlüssel stehen in der mitgelieferten .env.example:

diff <(grep -oE '^[A-Z0-9_]+' .env | sort -u) \
     <(grep -oE '^[A-Z0-9_]+' .env.example | sort -u)

Fehlt ein Schlüssel in deiner .env, gilt der Vorgabewert aus config/.

Quelle dieser Seite: docs/aktualisieren.md im Repository. Sie wird beim Bauen daraus erzeugt — Änderungen gehören in die Markdown-Datei, nicht in diese Seite.