Aus irgendeinem Grund denkt meine Produktion Laravel App, dass es in der lokalen Umgebung ist.Laravel 4.1 Bereitstellung - Produktion .env.php wird nicht erkannt
/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
(via SSH)
`Current application environment: local
php artisan tinker
dann getenv('DB_NAME')
$ php artisan tinker
[1] > getenv('DB_NAME');
// false
Also entweder meine Umgebungsvariablen nicht festgelegt werden, oder Laravel erkennt nicht meine .env.php
Datei für die Produktionsumgebung .
aktualisieren
Mit etwas Hilfe von Anultro im IRC, scheint es, dass .env.php noch nicht geladen ist. 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 festgelegt wird, ob .env.php
oder verwendet werden soll.
Nachdem dies gesagt ist, .env.php
sollte noch DB-Anmeldeinformationen und geheime Schlüssel etc speichern verwendet werden ... Aber ich habe immer noch ein Problem, weil die App noch falsch zurückkehrt, wenn ich versuche getenv('DB_NAME')
Irgendwelche Vorschläge zu laufen ?
mich korrigieren, wenn ich falsch bin, aber ich habe noch nie von Laravel gehört, das automatisch eine '.env.php' für die Umgebungserkennung behandelt? Sind Sie sicher, dass die Datei irgendwo enthalten ist? – Quasdunk
@Quasdunk - http://laravel.com/docs/configuration#environment-configuration und https://laracasts.com/lessons/private-keys-go-here (möglicherweise müssen Sie für ein Abonnement bezahlen, um Zugang zu erhalten das Video). – Gravy
@Quasdunk - Sie werden auch sehen, dass '.env.php' und' .env.local.php' in der Standarddatei '.gitignore' enthalten sind. – Gravy