esv-bludenz-php/INSTALLATION.md

4.3 KiB

Installationsanleitung ESV Bludenz PHP Kalender

Diese Version ist für klassischen Webspace mit:

  • PHP
  • MySQL / MariaDB
  • statischem React-Build

gedacht.


1. Projekt lokal vorbereiten

cd /home/nepharius/git.nepharius.at/esv-bludenz-php
npm install
npm run build

2. Dateien hochladen

In den Webspace-Root / public_html

Den Inhalt von build/ hochladen:

  • index.html
  • asset-manifest.json
  • favicon.ico
  • manifest.json
  • robots.txt
  • static/

Zusätzlich hochladen

Den Ordner api/ ebenfalls hochladen, z. B. nach:

public_html/api/

3. MySQL-Datenbank anlegen

Beim Hoster:

  • neue MySQL-Datenbank anlegen
  • Datenbankname notieren
  • Benutzername notieren
  • Passwort notieren
  • Host notieren (oft localhost, manchmal eigener DB-Host)

4. Zugangsdaten in api/config.php eintragen

Diese Werte anpassen:

const DB_HOST = '127.0.0.1';
const DB_PORT = 3306;
const DB_NAME = 'esv_bludenz';
const DB_USER = 'esv_user';
const DB_PASSWORD = 'esv_local_dev_123';

Für Produktion ersetzen durch echte Hoster-Daten.

Beispiel:

const DB_HOST = 'localhost';
const DB_PORT = 3306;
const DB_NAME = 'db123456';
const DB_USER = 'u123456';
const DB_PASSWORD = 'SEHR_STARKES_PASSWORT';

5. Datenbanktabellen anlegen

api/schema.sql in phpMyAdmin oder im DB-Tool des Hosters importieren.

Wichtig

Die Anwendung legt die Datenbanktabellen aktuell nicht automatisch beim ersten Aufruf an. Der Import von api/schema.sql ist Pflicht.


6. Kalender-Passwörter ändern

In api/config.php gibt es diese Funktion:

function calendar_passwords(): array
{
    return [
        'dittes' => 'dittes123',
        'kegeln' => 'kegeln123',
    ];
}

Diese Standardpasswörter unbedingt ändern.

Zum Beispiel so:

function calendar_passwords(): array
{
    return [
        'dittes' => 'HIER-EIN-STARKES-DITTES-PASSWORT',
        'kegeln' => 'HIER-EIN-STARKES-KEGELN-PASSWORT',
    ];
}

Empfehlung

  • nicht 123
  • keine Vereinsnamen als Passwort
  • lieber lang und eindeutig
  • für jeden Kalender ein eigenes Passwort

7. React-API-Ziel prüfen

Standardmäßig nutzt das Frontend:

window.location.origin + '/api'

Das passt, wenn:

  • Frontend und API auf derselben Domain liegen
  • api/ direkt unter derselben Website erreichbar ist

8. Funktionstest

API-Test

Im Browser öffnen:

https://deine-domain.tld/api/events.php?calendar=dittes

Wenn alles passt, kommt JSON zurück.

Frontend-Test

Dann die Seite öffnen:

https://deine-domain.tld/dittes
https://deine-domain.tld/kegeln

9. Nach dem Upload prüfen

  • lädt die Startseite?
  • laden /dittes und /kegeln?
  • klappt Admin-Login?
  • lassen sich Termine anlegen?
  • lassen sich Termine bearbeiten/löschen?
  • bleiben Daten nach Reload erhalten?

10. Sicherheits-Check vor Go-Live

Vor echtem Betrieb bitte prüfen:

  • Standardpasswörter geändert?
  • DB-Passwort geändert?
  • config.php nicht öffentlich verlinkt?
  • keine Testdaten mehr drin?
  • HTTPS aktiv?

Lokales Debugging

PHP-Testserver

cd /home/nepharius/git.nepharius.at/esv-bludenz-php
./start-php-test.sh

React-Devserver

cd /home/nepharius/git.nepharius.at/esv-bludenz-php
HOST=0.0.0.0 PORT=3003 BROWSER=none REACT_APP_API_BASE=http://192.168.0.149:8080/api npm start

Wichtige Projektdateien

  • api/config.php → DB + Kalender-Passwörter
  • api/schema.sql → MySQL-Tabellen
  • DEPLOYMENT.md → Upload-/Webspace-Struktur
  • README.md → Projektüberblick

Easyname Mini-Checkliste

  1. Den Inhalt von Upload/ in das Ziel-Webverzeichnis hochladen.
  2. Im easyname-Panel eine MySQL-Datenbank anlegen.
  3. Db+Conf/schema.sql in die Datenbank importieren.
  4. Db+Conf/config.sample.php als api/config.php auf dem Zielhost ablegen und mit echten Zugangsdaten befüllen.
  5. Prüfen, dass PHP PDO, pdo_mysql und Sessions unterstützt.
  6. Danach testen: Startseite, /dittes, Login, Termin anlegen, Termin bearbeiten, Termin löschen.

Wichtig

  • Nicht den Ordner Upload selbst hochladen, sondern dessen Inhalt.
  • Die Datenbank wird nicht automatisch erstellt oder befüllt.
  • api/config.php muss auf dem Zielhost manuell gesetzt werden.