Laravel 4.1 Deployment - Production .env.php wird nicht erkannt
Aus irgendeinem Grund denkt meine Produktions-Laravel-App, dass es in der lokalen Umgebung ist.
/var/www/appname/.env.php
<?php
return
[
'APP_ENV' => 'production',
'DB_HOST' => 'HIDDEN',
'DB_NAME' => 'HIDDEN',
'DB_PASSWORD' => 'HIDDEN'
];
/var/www/appname/bootstrap/start.php
$env = $app->detectEnvironment(function()
{
return getenv('APP_ENV') ?: 'local';
});
/var/www/appname/app/config/database.php
...
...
'mysql' => array(
'driver' => 'mysql',
'host' => getenv('DB_HOST'),
'database' => getenv('DB_NAME'),
'username' => getenv('DB_USERNAME'),
'password' => getenv('DB_PASSWORD'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'lar_',
),
...
...
sudo php artisan env
(über SSH)
`Current application environment: local
php artisan tinker
danngetenv('DB_NAME')
$ php artisan tinker
[1] > getenv('DB_NAME');
// false
Entweder werden meine Umgebungsvariablen nicht gesetzt oder Laravel erkennt meine nicht.env.php
Datei für die Produktionsumgebung.
Aktualisieren
Mit etwas Hilfe von Anultro im IRC scheint .env.php noch nicht geladen zu sein. Daher muss APP_ENV gesetzt werden, bevor laravel versucht, Umgebungen zu erkennen. Dies ist sinnvoll, da Laravel wissen muss, welche Umgebung ausgeführt wird, bevor entschieden wird, ob sie verwendet werden soll.env.php
oder.env.local.php
.
Nachdem dies gesagt wurde,.env.php
sollte immer noch verwendet werden, um DB-Anmeldeinformationen und geheime Schlüssel usw. zu speichern. Aber ich habe immer noch ein Problem, da die App beim Versuch, sie auszuführen, immer noch false zurückgibtgetenv('DB_NAME')
Irgendwelche Vorschläge?