Mój system jest Ubuntu i ustawiłem zmienne środowiskowe w /etc/environment
.Jak uzyskać zmienne środowiskowe systemu w PHP przy uruchomieniu CLI i Apache2Handler?
Jeśli biegnę skryptu PHP użyciu CLI - zmienne środowiskowe z /etc/environment
są rozpoznawane.
Ale, jeśli pójdę do wykonania skrypt PHP thru http://domain/test.php
(czyli apache2handler) dokładnie ten sam skrypt wypisuje NULL, czyli zmienne środowiskowe z /etc/environment
nie są ładowane.
Naprawiłem, że dodałem zmienne w /etc/apache2/envvars
i to rozwiązało problem.
Ale to są dwa różne pliki, które należy następnie zsynchronizować.
Jak mogę dokonać PHP/Apache obciążenia i uznania zmienne środowiskowe z /etc/environment
(system)?
EDIT: Do wyjaśnienia sprawy, kiedy mówię „nie załadowany do PHP” oznacza, że zmienne z /etc/environment
nie są ustawione w $_SERVER
, $_ENV
, getenv()
i nie istnieje w $GLOBALS
. Innymi słowy "nie są załadowane do PHP".
W moim przypadku w/etc/environment musiałem oddzielić każdą deklarację zmiennej na dwie linie: najpierw 'export VAR', a następnie 'VAR =" myVar "', w przeciwnym razie nie działałby – cafonso
To działało dla mnie, ale użyłem '/ etc/profiles.d/myproject.sh' (na Ubuntu Raring). – willoller
Na moim systemie (Ubuntu 16.04LTS) musiałem połączyć wyciągi eksportowe w/etc/environment w następujący sposób: 'export MY_VAR = 'foo'' –