2016-03-17 10 views
10

Linuxシステム環境変数をいくつか取得し、引き続き.env変数を使用する可能性はありますか?Laravel 5.2 Linuxシステム環境変数を取得する

Linux環境変数として設定されている自動生成データベースパスワードを使用したいが、Linuxシステム環境変数を見つけるためにLaravelを取得することはできません。

+2

、あなたが直接Linux環境変数を使用することはできません、あなたは – Qazi

+3

http://stackoverflow.com/を、シェルコマンドを実行して、あなたの変数を取得し、内部使用のためにLaravelグローバル変数に割り当てる必要があり質問/ 13568191/how-to-get-system-environment-variables-into-php-while-running-cli-apache2handあなたはそれを見ましたか? –

+0

この質問はまだ開いている理由は何ですか? – miken32

答えて

-1

「env」機能を使用する必要があります。

https://laravel.com/docs/5.2/configuration#environment-configuration

+0

env関数はLaravelプロジェクト環境変数に制限されています.Linuxシステム環境変数を取得することはできません。 – yclaes

+0

まあ、変数をエクスポートして、どのユーザーもアクセスできるようにする必要があります。 /etc/profile.dは良いスタートポイントでなければなりません。 –

0

Linuxシステム変数は、PHP/Apacheのを通じてアクセスすることはできません。 SetEnvを介してサイトのApache Vhostに変数を設定し、Laravelで取得することができます。

あなたは

  • アパッチ行うことができます:あなたのバーチャルホストでSetEnv DB_Pass dbpassword123
  • Nginxは:fastcgi_param DB_Pass dbpassword123

例Apacheのバーチャルホスト:

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

をし、

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

途中で。可能であれば、変数はまずHTTPサーバーに渡されなければなりません。 @NabinKunwarが共有するように、[CLI&Apache2Handlerを実行している間、PHPにシステム環境変数を取得する方法は?](http://stackoverflow.com/a/23635043/5816643)を参照してください。 – Qevo

1

PHPののgetenv()関数を使用してLaravelで変数DB_Passを取得。私の知識のとおり

PHP: getenv - Manual

関連する問題