4.3 KiB
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.htmlasset-manifest.jsonfavicon.icomanifest.jsonrobots.txtstatic/
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
/dittesund/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.phpnicht ö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örterapi/schema.sql→ MySQL-TabellenDEPLOYMENT.md→ Upload-/Webspace-StrukturREADME.md→ Projektüberblick
Easyname Mini-Checkliste
- Den Inhalt von
Upload/in das Ziel-Webverzeichnis hochladen. - Im easyname-Panel eine MySQL-Datenbank anlegen.
Db+Conf/schema.sqlin die Datenbank importieren.Db+Conf/config.sample.phpalsapi/config.phpauf dem Zielhost ablegen und mit echten Zugangsdaten befüllen.- Prüfen, dass PHP
PDO,pdo_mysqlund Sessions unterstützt. - Danach testen: Startseite,
/dittes, Login, Termin anlegen, Termin bearbeiten, Termin löschen.
Wichtig
- Nicht den Ordner
Uploadselbst hochladen, sondern dessen Inhalt. - Die Datenbank wird nicht automatisch erstellt oder befüllt.
api/config.phpmuss auf dem Zielhost manuell gesetzt werden.