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
|
||||
```
|
||||
|
||||
Drei Dinge, die du für später brauchst: den **Pfad aus `pwd`**, den **Pfad aus
|
||||
`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.
|
||||
**Ergebnis vom 31.07.2026 auf diesem Webspace:**
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| 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
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
git clone https://onion.breadcrumb-online.de/fs/tsv08kulmbach-website.git tsv08kulmbach
|
||||
cd tsv08kulmbach && pwd # diesen Pfad notieren: das ist SITE
|
||||
git clone https://onion.breadcrumb-online.de/fs/tsv08kulmbach-website.git tsv08kulmbach-website
|
||||
cd tsv08kulmbach-website && pwd # diesen Pfad notieren: das ist SITE
|
||||
```
|
||||
|
||||
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
|
||||
# [lokal], in einem zweiten Terminal
|
||||
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]:
|
||||
@@ -99,7 +113,7 @@ chmod 600 config/config.php # enthält SMTP-Passwort und app_secret
|
||||
### B4 [SSH] Composer-Abhängigkeiten
|
||||
|
||||
```bash
|
||||
cd ~/tsv08kulmbach
|
||||
cd ~/tsv08kulmbach-website
|
||||
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
|
||||
|
||||
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
|
||||
Docroots und sind grundsätzlich nicht per URL erreichbar. (Die Root-`.htaccess`
|
||||
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).
|
||||
|
||||
```bash
|
||||
cd ~/tsv08kulmbach
|
||||
cd ~/tsv08kulmbach-website
|
||||
php bin/matchcenter-sync.php # Spiele, Ergebnisse, Tabellen, Wappen
|
||||
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
|
||||
```
|
||||
|
||||
`SITE` und `PHP` durch die echten absoluten Pfade ersetzen, etwa
|
||||
`cd /www/htdocs/w01ca75d/tsv08kulmbach && /usr/bin/php bin/…`. Die Minuten sind
|
||||
`SITE` und `PHP` durch die echten absoluten Pfade ersetzen, auf diesem Webspace also
|
||||
`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,
|
||||
sperren sich per Lock gegen Parallelläufe und lassen bei Fehlern den letzten guten
|
||||
Cache stehen — ein fehlgeschlagener Lauf schadet nie.
|
||||
@@ -251,7 +265,7 @@ unangetastet, nicht löschen.
|
||||
### E2 [KAS] Domain umstellen
|
||||
|
||||
**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.
|
||||
|
||||
### E3 Sofort danach prüfen
|
||||
@@ -284,14 +298,14 @@ liegt und andere Menschen dort hochladen:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
# 2. [lokal] holen, dann entwickeln
|
||||
git pull
|
||||
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user