esv-bludenz-php/DEPLOYMENT.md

2.3 KiB

Deployment für klassischen Webspace

Zielbild

  • React-Frontend als statisches Build
  • PHP-API unter /api
  • MySQL-Datenbank beim Hoster

Erwartete Zielstruktur auf dem Webspace

public_html/
├── index.html
├── static/
├── favicon.ico
├── manifest.json
├── robots.txt
├── .htaccess
└── api/
    ├── .htaccess
    ├── config.php
    ├── config.example.php
    ├── db.php
    ├── helpers.php
    ├── events.php
    ├── login.php
    ├── logout.php
    ├── save-event.php
    ├── update-event.php
    ├── delete-event.php
    └── schema.sql

Build lokal erzeugen

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

Lokaler PHP-Testserver

Für Offline-Debugging ist jetzt ein kleiner Startscript dabei:

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

Dann läuft lokal ein PHP-Testserver auf:

  • http://127.0.0.1:8080

API-Beispiele lokal:

  • http://127.0.0.1:8080/api/events.php?calendar=dittes

Dann hochladen

1. Frontend-Build hochladen

Inhalt aus build/ nach public_html/ kopieren.

2. PHP-API hochladen

Ordner api/ nach public_html/api/ kopieren.

3. MySQL-Datenbank vorbereiten

  • MySQL-Datenbank beim Hoster anlegen
  • Zugangsdaten in api/config.php eintragen
  • optional api/config.example.php als Vorlage verwenden

4. Tabellen anlegen

  • api/schema.sql über phpMyAdmin oder das DB-Tool des Hosters importieren
  • die Anwendung legt die Tabellen aktuell nicht automatisch an

Voraussetzungen beim Hoster

Es muss vorhanden sein:

  • PHP
  • PDO_MYSQL
  • MySQL-Datenbank
  • Sessions aktiviert
  • .htaccess / mod_rewrite idealerweise verfügbar

Hinweis

Für den echten Upload ist der Ordner Upload/ im Repo die praktischste Quelle. Dort liegt bereits die zusammengestellte Upload-Struktur für den Zielhost.

Schnelltest

Nach dem Upload testen:

Kalender laden

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

Erwartung

JSON-Antwort mit:

  • calendar
  • events
  • isAdmin

Zugangsdaten

In api/config.php müssen diese Werte gesetzt werden:

  • DB_HOST
  • DB_PORT
  • DB_NAME
  • DB_USER
  • DB_PASSWORD

Danach sollte dieselbe React-Oberfläche mit der PHP-MySQL-API laufen.