Deploy-Anleitung: absolute Pfade, ~ ist auf diesem Webspace /

Das SSH-Konto hat die Systemwurzel als Home. cd ~ führt aus dem Webspace heraus,
~/tsv08kulmbach-website existiert nicht. Betraf das scp-Ziel und jede cd-Zeile.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NzeVVgMCrzCDJAKeLEdKr7
This commit is contained in:
2026-07-31 16:21:09 +02:00
parent 4f1bfce8b2
commit dd18906348

View File

@@ -58,7 +58,7 @@ git push origin main
```bash
ssh <dein-kas-user>@<dein-server>.kasserver.com
pwd # z. B. /www/htdocs/w01ca75d → das ist HOME
pwd # das Verzeichnis, in dem SSH startet
which php; php -v # PHP muss >= 8.1 sein
git --version
```
@@ -67,14 +67,19 @@ git --version
| | |
|---|---|
| HOME | `/www/htdocs/w01ca75d` |
| Webspace-Wurzel | `/www/htdocs/w01ca75d` |
| SITE | `/www/htdocs/w01ca75d/tsv08kulmbach-website` |
| PHP (CLI, für Cron) | `/usr/bin/php` — 8.3.29 |
| Composer | 2.9.8, global vorhanden |
| Alte CMS-Seite (Rückweg) | `/www/htdocs/w01ca75d/tsv08kulmbach.de` |
All-Inkl legt pro Domain einen Ordner im Home an, das Home selbst ist also kein
Docroot. Der Ordnername `tsv08kulmbach.de` ist von der alten Seite belegt, deshalb
**Falle: `~` ist hier `/`, nicht der Webspace.** Das SSH-Konto hat die Systemwurzel
als Home-Verzeichnis, `cd ~` führt also aus dem Webspace heraus und `~/…`-Pfade
existieren nicht. Alle Pfade in dieser Anleitung sind deshalb absolut — auch das
`scp`-Ziel und die Cron-Zeilen.
All-Inkl legt pro Domain einen Ordner unter `/www/htdocs/<user>/` an, dieses
Verzeichnis selbst ist also kein Docroot. Der Ordnername `tsv08kulmbach.de` ist von der alten Seite belegt, deshalb
heißt der neue `tsv08kulmbach-website`. Die anderen TSV-Ordner
(`2024.`, `hall-of-fame.`, `kabinendienst.`, `kreisliga-reise.`) sind eigene
Subdomains und vom Umschalten nicht betroffen.
@@ -85,7 +90,7 @@ Domain getrennt ein (Schritt C1).
### B2 [SSH] Repo klonen
```bash
cd ~
cd /www/htdocs/w01ca75d
git clone https://onion.breadcrumb-online.de/fs/tsv08kulmbach-website.git tsv08kulmbach-website
cd tsv08kulmbach-website && pwd # diesen Pfad notieren: das ist SITE
```
@@ -101,7 +106,7 @@ Die Datei ist gitignored, also nicht im Klon. Vom Mac hochladen:
```bash
# [lokal], in einem zweiten Terminal
scp config/config.production.php \
<kas-user>@<server>.kasserver.com:~/tsv08kulmbach-website/config/config.php
<kas-user>@<server>.kasserver.com:/www/htdocs/w01ca75d/tsv08kulmbach-website/config/config.php
```
Wichtig: Ziel heißt `config.php`, nicht `config.production.php`. Danach [SSH]:
@@ -113,7 +118,7 @@ chmod 600 config/config.php # enthält SMTP-Passwort und app_secret
### B4 [SSH] Composer-Abhängigkeiten
```bash
cd ~/tsv08kulmbach-website
cd /www/htdocs/w01ca75d/tsv08kulmbach-website
composer install --no-dev --optimize-autoloader
```
@@ -169,7 +174,7 @@ holen die Syncs. Vor dem ersten Lauf fehlen Tabellen, Spiele und der
Instagram-Block (die Seite bricht deswegen nicht, sie zeigt Ersatzinhalte).
```bash
cd ~/tsv08kulmbach-website
cd /www/htdocs/w01ca75d/tsv08kulmbach-website
php bin/matchcenter-sync.php # Spiele, Ergebnisse, Tabellen, Wappen
php bin/instagram-sync.php # Posts und Bilder
```
@@ -298,14 +303,14 @@ liegt und andere Menschen dort hochladen:
```bash
# 1. [SSH] auf dem Server: neue Uploads sichern
cd ~/tsv08kulmbach-website
cd /www/htdocs/w01ca75d/tsv08kulmbach-website
git add -A storage/dateien/uploads && git commit -m "Uploads vom Server" && git push
# 2. [lokal] holen, dann entwickeln
git pull
# 3. [lokal] fertig, gepusht → [SSH] ausrollen
cd ~/tsv08kulmbach-website && git pull && php bin/preflight.php
cd /www/htdocs/w01ca75d/tsv08kulmbach-website && git pull && php bin/preflight.php
```
Nie in der anderen Reihenfolge. Details und Begründung in CLAUDE.md, Abschnitt