Vollständige Setup-Anleitung: ProcessWire Website
Dies ist der "Bauplan" für das bioco-web-project. Er dokumentiert den gesamten Prozess vom leeren Server bis zu einer funktionierenden Staging- und Live-Umgebung, die mit Git verbunden ist.
Das Ziel: Ein professioneller "Git-First"-Workflow. * Lokal (PC): Wir schreiben Code auf unserem Computer. * GitHub (Rezeptbuch): Wir speichern den Code in einem zentralen Lager. * Server (Küche): Der Server holt sich den Code von GitHub, um die Website anzuzeigen.
Die Umgebungen:
* develop (GitHub-Branch) -> staging.bioco.ch (Testküche)
* main (GitHub-Branch) -> www.bioco.ch (Live-Restaurant)
Phase 1: Vorbereitung (Lokal und GitHub)
Zuerst bereiten wir den Code (das "Rezept") auf unserem PC und in unserem "Rezeptbuch" (GitHub) vor.
=== "Schritt 1-3: Repo und ProcessWire holen"
1. **GitHub-Repo erstellen:**
* Erstelle ein neues, **privates** Repository auf GitHub.com.
* Name: `bioco-web-project`.
2. **Branches erstellen:**
* Erstelle im Repo einen `develop`-Branch (basierend auf `main`).
3. **ProcessWire-Dateien lokal holen:**
* Erstelle einen leeren Ordner `bioco-web-project` auf deinem PC.
* Klone das leere GitHub-Repo mit **GitHub Desktop** in diesen Ordner.
* Lade die ProcessWire-ZIP-Datei von [processwire.com](https://processwire.com/) herunter.
* Entpacke die ZIP. Kopiere **alle** Dateien (`index.php`, `wire/`, `site-blank/` etc.) in deinen lokalen `bioco-web-project`-Ordner.
* Benenne den Ordner `site-blank` sofort in `site` um.
=== "Schritt 4: .gitignore erstellen"
Erstelle im `bioco-web-project`-Ordner eine neue Datei namens `.gitignore`. Füge diesen Inhalt ein, um sensible Dateien zu ignorieren:
```text
# ProcessWire sensible/generierte Dateien
/site/config.php
/site/assets/
/site/templates/cache/
/site/templates/logs/
/site/templates/sessions/
/site/templates/backups/
# OS-Dateien
.DS_Store
Thumbs.db
```
=== "Schritt 5: Code zu GitHub pushen"
1. Öffne GitHub Desktop. Du siehst alle neuen PW-Dateien.
2. Schreibe eine Commit-Nachricht (z.B. "Initial ProcessWire core files").
3. **Commite** die Änderungen.
4. **Pushe** die Änderungen (`Push origin`).
5. Wechsle in GitHub Desktop zum `develop`-Branch (`Current Branch` -> `develop`) und stelle sicher, dass er auch gepusht wird.
Phase 2: Server-Vorbereitung (cPanel)
Jetzt bereiten wir die "Küche" (Novatrend-Server) vor.
-
Datenbanken & Benutzer erstellen:
- Gehe zu "MySQL®-Datenbanken".
- Erstelle 3 Datenbanken:
bioco_live,bioco_staging,bioco_matomo. - Erstelle 1 Benutzer:
bioco_DEIN-DB-BENUTZER(ANONYMISIERT). - Weise
bioco_DEIN-DB-BENUTZER"ALLE RECHTE" (ALL PRIVILEGES) für alle 3 Datenbanken zu. - (Screenshot
Bildschirmfoto 2025-10-23 um 08.32.19.pngentfernt. Beschreibung: In der cPanel-Übersicht "Aktuelle Datenbanken" sollte nun der Benutzer mit Rechten für alle drei Datenbanken aufgeführt sein.)
-
Staging-Subdomain erstellen:
- Gehe zu "Subdomains".
- Erstelle
staging.bioco.ch. - Notiere den Pfad:
public_html/bioco_staging.
Phase 3: Der cPanel-SSH-Hack (Der Spezialschluessel)
Das ist der wichtigste und komplizierteste Teil. Wir müssen eine sichere Verbindung zwischen Server und GitHub herstellen.
Das cPanel-Problem
Die cPanel-UI ("SSH Access") zwingt uns, ein Passwort für SSH-Schlüssel zu verwenden. Das automatische Git-Tool ("Git Version Control") benötigt aber einen Schlüssel OHNE Passwort. Die Werkzeuge widersprechen sich.
(Screenshot Bildschirmfoto 2025-10-22 um 21.36.55.jpg entfernt.)
Lösung: Wir erstellen den Schlüssel manuell im Server-Terminal.
=== "Schritt 1-3: Schlüssel erstellen (Terminal)"
1. **Terminal öffnen:** Gehe im cPanel zu "Erweitert" -> **"Terminal"**.
2. **Aufräumen:** Lösche alle kaputten Schlüssel-Reste (falls vorhanden).
```bash
# (Dieser Befehl löscht id_rsa, id_rsa.pub etc. im .ssh-Ordner Ihres Users)
rm /home/DEIN-CPANEL-USER/.ssh/id_rsa*
rm /home/DEIN-CPANEL-USER/.ssh/authorized_keys
```
3. **Schlüssel OHNE Passwort erstellen:** Führe diesen Befehl aus, um einen neuen Schlüssel zu erstellen und das Passwort (`-N ""`) explizit leer zu lassen. (Pfad ANONYMISIERT)
```bash
ssh-keygen -t rsa -b 2048 -f /home/DEIN-CPANEL-USER/.ssh/id_rsa -N ""
```
=== "Schritt 4-6: Schlüssel autorisieren (cPanel & GitHub)"
4. **Schlüssel im cPanel "autorisieren":**
* Gehe zur UI "Sicherheit" -> "SSH Access".
* Der neue Schlüssel `id_rsa` ist jetzt sichtbar. Klicke bei `id_rsa.pub` auf **"Manage"** -> **"Authorize"**.
5. **Schlüssel zu GitHub hinzufügen:**
* Gehe zurück ins **Terminal**.
* Zeige den öffentlichen Schlüssel an: `cat /home/DEIN-CPANEL-USER/.ssh/id_rsa.pub` (Pfad ANONYMISIERT)
* Kopiere die gesamte Ausgabe (beginnt mit `ssh-rsa AAAA...`).
* Gehe zu **GitHub.com** -> `bioco-web-project`-Repo -> "Settings" -> "Deploy Keys".
* Klicke "Add deploy key".
* **Title:** `Novatrend Server`
* **Key:** Füge den kopierten Schlüssel ein.
* **Haken setzen:** **"Allow write access"**.
* Klicke "Add key".
6. **Verbindung testen (Terminal):**
* Teste die Verbindung mit: (Pfad ANONYMISIERT)
`git ls-remote git@github.com:DEIN-GITHUB-KONTO/bioco-web-project.git`
* Antworte auf die `(yes/no)`-Frage mit `yes`.
* **Erfolg:** Du siehst eine Liste deiner Branches. Die Verbindung steht.
Phase 4: Staging-Seite installieren (staging.bioco.ch)
Jetzt bauen wir die Testküche.
=== "Schritt 1-2: Code holen & Branch wechseln (cPanel)"
1. **Code holen (Klonen):**
* Gehe im cPanel zu "Dateien" -> **"Git™ Version Control"**.
* Klicke **"Create"**.
* **Clone URL:** `git@github.com:DEIN-GITHUB-KONTO/bioco-web-project.git` (ANONYMISIERT)
* **Repository Path:** `public_html/bioco_staging`
* **Repository Name:** `Bioco Staging`
* Klicke "Create".
2. **Branch wechseln:**
* Gehe auf **"Manage"** für das "Bioco Staging"-Repo.
* Ändere den "Checked-Out Branch" auf **`develop`** und klicke "Update".
=== "Schritt 3: Server-Fehlerbehebung (File Manager)"
Wir müssen jetzt 4 Dinge im "File Manager" reparieren:
* **403-Fehler (Ordner):** Rechtsklick auf `public_html/bioco_staging` -> "Change Permissions" -> auf **`755`** setzen.
* **403-Fehler (Datei):** Rechtsklick auf `public_html/bioco_staging/.htaccess` -> "Change Permissions" -> auf **`644`** setzen.
* **Installer-Fehler:** Rechtsklick auf Ordner `public_html/bioco_staging/site` -> "Change Permissions" -> **Temporär auf `777`** setzen.
* **PHP 7.4-Fehler:** Rechtsklick auf `public_html/bioco_staging/.htaccess` -> **"Edit"**. Füge den PHP 8.2 Code-Block **ganz oben** ein:
```apacheconfig
# BEGIN PHP 8.2 ERZWINGEN
<IfModule mime_module>
AddHandler application/x-httpd-ea-php82 .php .php8 .phtml
</IfModule>
# END PHP 8.2 ERZWINGEN
```
=== "Schritt 4-5: Installation & Aufräumen"
4. **Installation (Browser):**
* Öffne `http://staging.bioco.ch` im Browser.
* Der Installer startet. (Screenshot `Bildschirmfoto 2025-10-23 um 08.25.54.jpg` entfernt. Beschreibung: Der ProcessWire-Installer sollte nun alle Prüfungen als "bestanden" (grüne Haken) anzeigen.)
* Gib die **Staging-Datenbankdaten** ein:
* DB Name: `bioco_staging`
* DB User: `bioco_DEIN-DB-BENUTZER` (ANONYMISIERT)
* DB Pass: (Dein Datenbank-Passwort)
* Folge dem Installer, erstelle deinen Admin-User und **SPEICHERE DAS PASSWORT**.
5. **Aufräumen (Sicherheit):**
* Gehe zurück in den "File Manager".
* Setze die Berechtigung des `.../bioco_staging/site`-Ordners von `777` zurück auf **`755`**.
Phase 5: Live-Seite installieren (www.bioco.ch)
Wiederhole Phase 4 exakt, aber für die Live-Seite.
- Code holen (Klonen):
- Vorbereitung: Verschiebe den
bioco_staging-Ordner (undmatomo) temporär auspublic_htmlheraus (z.B. in einenTEMP-Ordner), damitpublic_htmlleer ist. - Klone das Repo (wie in 4.1) in den Pfad:
public_html - Name:
Bioco Live - Branch: Bleibt auf
main(Standard). - Aufräumen: Verschiebe
bioco_staging(undmatomo) zurück inpublic_html.
- Vorbereitung: Verschiebe den
- Server-Fehlerbehebung:
- Führe Schritt 4.3 (Permissions & PHP) exakt so für
public_htmlundpublic_html/.htaccessundpublic_html/sitedurch.
- Führe Schritt 4.3 (Permissions & PHP) exakt so für
- Installation (Browser):
- Öffne
http://www.bioco.chim Browser. - Gib die Live-Datenbankdaten ein:
- DB Name:
bioco_live - DB User:
bioco_DEIN-DB-BENUTZER(ANONYMISIERT) - DB Pass: (Dein Datenbank-Passwort)
- DB Name:
- Schliesse die Installation ab.
- Öffne
- Aufräumen (Sicherheit):
- Setze die Berechtigung des
public_html/site-Ordners zurück auf755.
- Setze die Berechtigung des
Phase 6: Abschluss (Doku und Matomo)
- Matomo:
- Installiere Matomo im Ordner
public_html/matomo. - Verbinde es beim Installer mit der
bioco_matomo-Datenbank.
- Installiere Matomo im Ordner
- Doku:
- Die Doku (
docs.bioco.ch) ist ein separates Projekt (bioco-doku). - Es wird nicht per cPanel, sondern automatisch per GitHub Actions auf GitHub Pages veröffentlicht.
- Im cPanel ("Zone Editor") wird nur ein
CNAME-Eintrag (docs->DEIN-GITHUB-KONTO.github.io) benötigt.
- Die Doku (