Implantação do Laravel 4.1 - a produção .env.php não está sendo reconhecida
Por alguma razão, meu aplicativo laravel de produção pensa que está no ambiente local.
/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
entãogetenv('DB_NAME')
$ php artisan tinker
[1] > getenv('DB_NAME');
// false
Portanto, minhas variáveis de ambiente não estão sendo definidas ou o Laravel não está reconhecendo minha.env.php
arquivo para o ambiente de produção.
Atualizar
Com alguma ajuda do Anultro no IRC, parece que o .env.php ainda não foi carregado. Como tal, APP_ENV deve ser definido antes que o laravel tente detectar ambientes. Isso faz sentido, porque o Laravel precisa saber qual ambiente está executando antes de determinar se deve usar.env.php
ou.env.local.php
.
Tendo dito isto,.env.php
ainda deve ser usado para armazenar credenciais de banco de dados e chaves secretas etc ... Mas ainda estou tendo um problema porque o aplicativo ainda está retornando falso quando tento executargetenv('DB_NAME')
Alguma sugestão?