Ответ 1
Используйте функцию getenv() PHP.
Есть ли возможность получить некоторые переменные системной среды Linux и по-прежнему использовать переменные .env?
Мы хотим использовать автоматически сгенерированный пароль базы данных, который устанавливается как переменная среды Linux, но не может заставить Laravel находить переменные системной среды Linux.
Используйте функцию getenv() PHP.
Системные переменные Linux не могут быть доступны через PHP/Apache. Вы можете установить переменную в Apache Vhost вашего сайта через SetEnv и захватить ее в Laravel.
Вы могли бы сделать
SetEnv DB_Pass dbpassword123
в вашем Vhostfastcgi_param DB_Pass dbpassword123
Пример 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>
и выберите переменную DB_Pass
в Laravel с помощью
$dbPass = env('DB_Pass');
Вы должны использовать функцию "env".
https://laravel.com/docs/5.2/configuration#environment-configuration