2016-03-17 2 views
10

Gibt es eine Möglichkeit, einige Linux-Systemumgebungsvariablen zu erhalten und immer noch die .env-Variablen zu verwenden?Laravel 5.2 erhalten Linux Systemumgebungsvariablen

Wir möchten ein automatisch generiertes Datenbankkennwort verwenden, das als Linux-Umgebungsvariable festgelegt ist, aber Laravel nicht dazu bringen kann, die Linux-Systemumgebungsvariablen zu finden.

+2

nach meinem Wissen, können Sie nicht Linux-Umgebungsvariable direkt verwenden, müssen Sie Shell-Befehle ausführen, nehmen Sie Ihre Variable, und weisen sie – Qazi

+3

globale Variable für den internen Gebrauch Laravel http://stackoverflow.com/ Fragen/13568191/how-to-get-system-Umgebungsvariablen-in-php-während-running-cli-apache2hand hast du es angeschaut? –

+0

Warum ist diese Frage noch offen? – miken32

Antwort

-1
+0

Die env-Funktion ist auf Laravel-Projektumgebungsvariablen beschränkt, die Linux-Systemumgebungsvariablen können nicht abgerufen werden. – yclaes

+0

Nun, Sie müssen Ihre Variable exportieren, damit sie für jeden Benutzer zugänglich ist. /etc/profile.d muss ein guter Startpunkt sein. –

0

Linux Systemvariablen können nicht den Zugriff über PHP/Apache sein. Sie können eine Variable im Apache Vhost Ihrer Site über SetEnv setzen und in Laravel abgreifen.

Sie tun konnte

  • Apache: SetEnv DB_Pass dbpassword123 in Ihrem Vhost
  • Nginx: fastcgi_param DB_Pass dbpassword123

Beispiel Apache Vhost:

<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> 

und Fetch die Variable DB_Pass in Laravel mit

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

In der Mitte dort. Es ist sehr gut möglich, dass die Variablen zuerst an den HTTP-Server übergeben werden müssen. Wie bei @NabinKunwar beschrieben, siehe [Wie bekomme ich Systemumgebungsvariablen in PHP, während ich CLI & Apache2Handler starte?] (Http://stackoverflow.com/a/23635043/5816643). – Qevo