Deploy-Anleitung: echte Server-Pfade statt Platzhalter
B1 auf dem Webspace durchgeführt: PHP-CLI 8.3.29 unter /usr/bin/php, Composer 2.9.8 global, Git 2.43. Der Ordnername tsv08kulmbach.de ist von der alten CMS-Seite belegt (die der Rückweg beim Umschalten ist), der neue heißt deshalb tsv08kulmbach-website. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NzeVVgMCrzCDJAKeLEdKr7
This commit is contained in:
@@ -63,17 +63,31 @@ which php; php -v # PHP muss >= 8.1 sein
|
|||||||
git --version
|
git --version
|
||||||
```
|
```
|
||||||
|
|
||||||
Drei Dinge, die du für später brauchst: den **Pfad aus `pwd`**, den **Pfad aus
|
**Ergebnis vom 31.07.2026 auf diesem Webspace:**
|
||||||
`which php`** und die **PHP-Version**. Ist `php` älter als 8.1, prüfe nach
|
|
||||||
versionierten Binaries (`ls /usr/bin/php*`, `ls /usr/local/bin/php*`) und nimm den
|
| | |
|
||||||
passenden absoluten Pfad; die Cronjobs brauchen ihn ohnehin absolut.
|
|---|---|
|
||||||
|
| HOME | `/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
|
||||||
|
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.
|
||||||
|
|
||||||
|
Achtung: das ist die **CLI**-Version. Welches PHP der Webserver nimmt, stellt KAS pro
|
||||||
|
Domain getrennt ein (Schritt C1).
|
||||||
|
|
||||||
### B2 [SSH] Repo klonen
|
### B2 [SSH] Repo klonen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~
|
cd ~
|
||||||
git clone https://onion.breadcrumb-online.de/fs/tsv08kulmbach-website.git tsv08kulmbach
|
git clone https://onion.breadcrumb-online.de/fs/tsv08kulmbach-website.git tsv08kulmbach-website
|
||||||
cd tsv08kulmbach && pwd # diesen Pfad notieren: das ist SITE
|
cd tsv08kulmbach-website && pwd # diesen Pfad notieren: das ist SITE
|
||||||
```
|
```
|
||||||
|
|
||||||
Der Klon lädt gut 460 MB (Website plus das Vereinsmaterial der Dateiablage), das
|
Der Klon lädt gut 460 MB (Website plus das Vereinsmaterial der Dateiablage), das
|
||||||
@@ -87,7 +101,7 @@ Die Datei ist gitignored, also nicht im Klon. Vom Mac hochladen:
|
|||||||
```bash
|
```bash
|
||||||
# [lokal], in einem zweiten Terminal
|
# [lokal], in einem zweiten Terminal
|
||||||
scp config/config.production.php \
|
scp config/config.production.php \
|
||||||
<kas-user>@<server>.kasserver.com:~/tsv08kulmbach/config/config.php
|
<kas-user>@<server>.kasserver.com:~/tsv08kulmbach-website/config/config.php
|
||||||
```
|
```
|
||||||
|
|
||||||
Wichtig: Ziel heißt `config.php`, nicht `config.production.php`. Danach [SSH]:
|
Wichtig: Ziel heißt `config.php`, nicht `config.production.php`. Danach [SSH]:
|
||||||
@@ -99,7 +113,7 @@ chmod 600 config/config.php # enthält SMTP-Passwort und app_secret
|
|||||||
### B4 [SSH] Composer-Abhängigkeiten
|
### B4 [SSH] Composer-Abhängigkeiten
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/tsv08kulmbach
|
cd ~/tsv08kulmbach-website
|
||||||
composer install --no-dev --optimize-autoloader
|
composer install --no-dev --optimize-autoloader
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -132,7 +146,7 @@ Schreiben muss die Seite in `storage/logs`, `storage/cache`, `storage/ratelimit`
|
|||||||
### C1 [KAS] Subdomain anlegen und schützen
|
### C1 [KAS] Subdomain anlegen und schützen
|
||||||
|
|
||||||
1. **Domains** → Subdomain `neu.tsv08kulmbach.de` anlegen.
|
1. **Domains** → Subdomain `neu.tsv08kulmbach.de` anlegen.
|
||||||
2. Als Verzeichnis **`/tsv08kulmbach/public`** eintragen, nicht das Repo-Root.
|
2. Als Verzeichnis **`/tsv08kulmbach-website/public`** eintragen, nicht das Repo-Root.
|
||||||
Damit liegen `app/`, `config/`, `data/`, `storage/` und `vendor/` außerhalb des
|
Damit liegen `app/`, `config/`, `data/`, `storage/` und `vendor/` außerhalb des
|
||||||
Docroots und sind grundsätzlich nicht per URL erreichbar. (Die Root-`.htaccess`
|
Docroots und sind grundsätzlich nicht per URL erreichbar. (Die Root-`.htaccess`
|
||||||
ist nur ein Notnagel für Hoster, die das nicht können.)
|
ist nur ein Notnagel für Hoster, die das nicht können.)
|
||||||
@@ -155,7 +169,7 @@ holen die Syncs. Vor dem ersten Lauf fehlen Tabellen, Spiele und der
|
|||||||
Instagram-Block (die Seite bricht deswegen nicht, sie zeigt Ersatzinhalte).
|
Instagram-Block (die Seite bricht deswegen nicht, sie zeigt Ersatzinhalte).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/tsv08kulmbach
|
cd ~/tsv08kulmbach-website
|
||||||
php bin/matchcenter-sync.php # Spiele, Ergebnisse, Tabellen, Wappen
|
php bin/matchcenter-sync.php # Spiele, Ergebnisse, Tabellen, Wappen
|
||||||
php bin/instagram-sync.php # Posts und Bilder
|
php bin/instagram-sync.php # Posts und Bilder
|
||||||
```
|
```
|
||||||
@@ -227,8 +241,8 @@ PHP-Pfad kommen aus B1/B2.
|
|||||||
23 3 * * 0 cd SITE && PHP bin/log-rotate.php > /dev/null 2>&1
|
23 3 * * 0 cd SITE && PHP bin/log-rotate.php > /dev/null 2>&1
|
||||||
```
|
```
|
||||||
|
|
||||||
`SITE` und `PHP` durch die echten absoluten Pfade ersetzen, etwa
|
`SITE` und `PHP` durch die echten absoluten Pfade ersetzen, auf diesem Webspace also
|
||||||
`cd /www/htdocs/w01ca75d/tsv08kulmbach && /usr/bin/php bin/…`. Die Minuten sind
|
`cd /www/htdocs/w01ca75d/tsv08kulmbach-website && /usr/bin/php bin/…`. Die Minuten sind
|
||||||
versetzt, damit sich zwei Läufe nicht überlappen. Alle Skripte sind CLI-only,
|
versetzt, damit sich zwei Läufe nicht überlappen. Alle Skripte sind CLI-only,
|
||||||
sperren sich per Lock gegen Parallelläufe und lassen bei Fehlern den letzten guten
|
sperren sich per Lock gegen Parallelläufe und lassen bei Fehlern den letzten guten
|
||||||
Cache stehen — ein fehlgeschlagener Lauf schadet nie.
|
Cache stehen — ein fehlgeschlagener Lauf schadet nie.
|
||||||
@@ -251,7 +265,7 @@ unangetastet, nicht löschen.
|
|||||||
### E2 [KAS] Domain umstellen
|
### E2 [KAS] Domain umstellen
|
||||||
|
|
||||||
**Domains** → `tsv08kulmbach.de` und `www.tsv08kulmbach.de` auf
|
**Domains** → `tsv08kulmbach.de` und `www.tsv08kulmbach.de` auf
|
||||||
**`/tsv08kulmbach/public`** zeigen lassen. PHP-Version prüfen, SSL muss für beide
|
**`/tsv08kulmbach-website/public`** zeigen lassen. PHP-Version prüfen, SSL muss für beide
|
||||||
aktiv sein.
|
aktiv sein.
|
||||||
|
|
||||||
### E3 Sofort danach prüfen
|
### E3 Sofort danach prüfen
|
||||||
@@ -284,14 +298,14 @@ liegt und andere Menschen dort hochladen:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. [SSH] auf dem Server: neue Uploads sichern
|
# 1. [SSH] auf dem Server: neue Uploads sichern
|
||||||
cd ~/tsv08kulmbach
|
cd ~/tsv08kulmbach-website
|
||||||
git add -A storage/dateien/uploads && git commit -m "Uploads vom Server" && git push
|
git add -A storage/dateien/uploads && git commit -m "Uploads vom Server" && git push
|
||||||
|
|
||||||
# 2. [lokal] holen, dann entwickeln
|
# 2. [lokal] holen, dann entwickeln
|
||||||
git pull
|
git pull
|
||||||
|
|
||||||
# 3. [lokal] fertig, gepusht → [SSH] ausrollen
|
# 3. [lokal] fertig, gepusht → [SSH] ausrollen
|
||||||
cd ~/tsv08kulmbach && git pull && php bin/preflight.php
|
cd ~/tsv08kulmbach-website && git pull && php bin/preflight.php
|
||||||
```
|
```
|
||||||
|
|
||||||
Nie in der anderen Reihenfolge. Details und Begründung in CLAUDE.md, Abschnitt
|
Nie in der anderen Reihenfolge. Details und Begründung in CLAUDE.md, Abschnitt
|
||||||
|
|||||||
Reference in New Issue
Block a user