From b6199623c5833803cfd3fbe84de092964a882402 Mon Sep 17 00:00:00 2001 From: Clemens Creutzburg Date: Fri, 17 Jul 2026 11:40:08 +0200 Subject: [PATCH] Produktions-Env-Loading fuer echtes Webhosting ergaenzen PHP-FPM/mod_php auf Shared Hosting erbt keine shell-exportierten Umgebungsvariablen wie der lokale Dev-Server. app/bootstrap.php laedt jetzt optional env.local.php (nicht eingecheckt, siehe env.local.example.php als Vorlage) und setzt die Variablen per putenv(), bevor irgendein app_env()/getenv()-Aufruf passiert. Greift jetzt auch fuer CLI-Skripte (migrate.php, grant-platform-admin.php) ueber scripts/dev-db.php. --- .gitignore | 1 + app/bootstrap.php | 11 ++++++++++ env.local.example.php | 48 +++++++++++++++++++++++++++++++++++++++++++ scripts/dev-db.php | 2 ++ 4 files changed, 62 insertions(+) create mode 100644 env.local.example.php diff --git a/.gitignore b/.gitignore index 813e987..98e0a01 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .env.local +env.local.php .local/ uploads/ var/ diff --git a/app/bootstrap.php b/app/bootstrap.php index 018d5de..de8f55f 100644 --- a/app/bootstrap.php +++ b/app/bootstrap.php @@ -6,6 +6,17 @@ if (!defined('APP_ROOT')) { define('APP_ROOT', dirname(__DIR__)); } +// Auf echtem Webhosting (PHP-FPM/mod_php) gibt es meist keine bequeme +// Moeglichkeit, Prozess-Umgebungsvariablen zu setzen wie beim lokalen +// `source .env.local` vor dem PHP-Dev-Server. env.local.php ist die +// Produktions-Entsprechung: eine nicht eingecheckte Datei mit putenv()- +// Aufrufen, siehe env.local.example.php. Existiert sie nicht (lokale +// Entwicklung), passiert hier nichts und getenv() liest wie bisher aus +// der Shell-Umgebung. +if (is_file(APP_ROOT . '/env.local.php')) { + require_once APP_ROOT . '/env.local.php'; +} + function app_env(string $name, ?string $default = null): ?string { $value = getenv($name); diff --git a/env.local.example.php b/env.local.example.php new file mode 100644 index 0000000..c169840 --- /dev/null +++ b/env.local.example.php @@ -0,0 +1,48 @@ +