Feedback-Collector serverfest: Datenpfad konfigurierbar + Doku fuer php-fpm

Vorbereitung fuer Server-Deploy (Server hat kein PHP; nginx vorhanden, PHP 8.3 im Repo installierbar):

- feedback.php: Datenverzeichnis ueber Env SLC_FEEDBACK_DIR ueberschreibbar
  (empfohlen ausserhalb des Web-Roots -> keine git-pull-Konflikte, .jsonl nicht
  oeffentlich). Default unveraendert ./feedback-data. Weiterhin NUR PHP-Core noetig,
  keine Extensions.
- .gitignore: 04_Tablet-Quiz/app/feedback-data/ ausgenommen (falls Default-Pfad).
- DEPLOY.md: konkrete Schritte fuer Ubuntu 24.04 + nginx (apt install php-fpm,
  Socket php8.3-fpm, NUR feedback.php als PHP ausfuehren = Hardening, feedback-data
  per deny all schuetzen, SLC_FEEDBACK_DIR setzen) + curl-Verifikation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
breitenbach76 2026-06-10 09:04:41 +02:00
parent 28c584acb3
commit 029a12151e
3 changed files with 33 additions and 11 deletions

View file

@ -39,8 +39,11 @@ if (!is_array($data)) {
$data['_received'] = gmdate('c');
$data['_ip'] = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null;
$dir = __DIR__ . '/feedback-data';
$file = $dir . '/feedback.jsonl';
// Datenverzeichnis: per Env SLC_FEEDBACK_DIR überschreibbar (empfohlen: AUSSERHALB
// des Web-Roots, dann ist die Datei nicht öffentlich abrufbar und git pull bleibt sauber).
// Default: ./feedback-data neben diesem Skript (ist per .gitignore aus der Versionierung).
$dir = getenv('SLC_FEEDBACK_DIR') ?: (__DIR__ . '/feedback-data');
$file = rtrim($dir, '/') . '/feedback.jsonl';
if (!is_dir($dir)) { @mkdir($dir, 0775, true); }
$line = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) . "\n";