2016-03-17 19 views
10

Czy istnieje możliwość uzyskania niektórych zmiennych środowiskowych systemu Linux i nadal używać zmiennych .env?Laravel 5.2 uzyskać zmienne środowiskowe systemu Linux

Chcemy użyć automatycznie wygenerowanego hasła do bazy danych, które zostało ustawione jako zmienna środowiskowa systemu Linux, ale nie może sprawić, że Laravel znajdzie zmienne środowiskowe systemu Linux.

+2

według mojej wiedzy, nie można użyć zmiennej środowiskowej Linux bezpośrednio, trzeba uruchomić poleceń powłoki, chwyć swoją zmienną i przypisać ją do zmiennej globalnej laravel do użytku wewnętrznego – Qazi

+3

http://stackoverflow.com/ pytania/13568191/how-to-get-system-environment-variables-to-php-while-running-cli-apache2hand czy na to spojrzałeś? –

+0

Czy są jakieś powody, dla których to pytanie jest nadal otwarte? – miken32

Odpowiedz

-1
+0

Funkcja env jest ograniczona do zmiennych środowiskowych projektu Laravel, nie jesteśmy w stanie uzyskać zmiennych środowiskowych systemu Linux. – yclaes

+0

Cóż, musisz wyeksportować zmienną, aby był dostępny dla dowolnego użytkownika. /etc/profile.d musi być dobrym punktem początkowym. –

0

zmienne systemowe Linux nie może być dostęp za pośrednictwem PHP/Apache. Możesz ustawić zmienną w Vhost Apache swojej strony poprzez SetEnv i pobrać ją w Laravel.

Można zrobić

  • Apache: SetEnv DB_Pass dbpassword123 w vhosta
  • Nginx: fastcgi_param DB_Pass dbpassword123

przykładzie Apache vhosta:

<VirtualHost example.com:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 
    ServerName mpj.local.dev 

    SetEnv DB_Pass dbpassword123 

    <Directory /var/www/html> 
     AllowOverride All 
     Require all granted 
    </Directory> 

    ErrorLog "/var/log/apache2/error_log" 
    CustomLog "/var/log/apache2/access_log" common 
</VirtualHost> 

i pobierać zmienną DB_Pass w laravel z

$dbPass = env('DB_Pass'); 
+1

W połowie drogi. Jest bardzo możliwe, że zmienne muszą najpierw zostać przekazane do serwera HTTP. Jak @NabinKunwar udostępnione, zobacz [Jak uzyskać zmienne środowiskowe systemu w PHP podczas uruchamiania CLI i Apache2Handler?] (Http://stackoverflow.com/a/23635043/5816643). – Qevo

Powiązane problemy