Após atualizar para o Laravel 5.2, nenhum dos .env
valores do meu arquivo está sendo lido. Segui as instruções de atualização ; nenhum dos meus arquivos de configuração foi alterado, exceto auth.php. Todos estavam funcionando bem na versão anterior, 5.1.19
.env
contém valores como
DB_DATABASE=mydb
DB_USERNAME=myuser
config/database.php
contém
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
]
Eu recebo este erro:
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)
Claramente, não puxando minha configuração de env. Isso está afetando cada um dos meus arquivos de configuração, incluindo terceiros, como o bugsnag.
Eu também tentei
php artisan config:clear
php artisan cache:clear
Atualizar
Tentando php artisan tinker
>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]
Tentei instalar uma nova cópia do Laravel 5.2. Basicamente, apenas copiei na minha app
pasta; nenhum pacote adicional do compositor está incluído. Ainda tendo o mesmo problema. Tenho outros projetos do Laravel 5.2 no mesmo servidor que estão funcionando bem.
fonte
.env
Respostas:
Das notas oficiais de atualização do Laravel 5.2:
Referência: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
fonte
php artisan config:cache
resolveu para mim - nada mais ajudou. Nem mesmophp artisan config:clear
- obrigado!php artisan config:clear
é a única coisa que funcionou para mimphp artisan config:clear
funcionou para mim. Eu não fiz o config: cache antes, então me pareceu um pouco estranho ter que limpar o cache..env
vez do.env.example
arquivoSe alguma de suas
.env
variáveis contiver espaço em branco, certifique-se de colocá-las entre aspas duplas. Por exemplo:SITE_NAME="My website"
Não se esqueça de limpar o cache antes de testar:
fonte
.env
arquivo, execute ophp artisan config:cache & php artisan config:clear
comando. Vai funcionar.Uau. Minha nossa. É porque eu tinha um valor env com um espaço, não entre aspas
este
Mudou para este
Corrigido. Eu acho que isso tem a ver com o Laravel 5.2 agora atualizando vlucas / phpdotenv de 1.1.1 para 2.1.0
fonte
.env
versão 5.2, enquanto na 5.1 não.phpdotenv
, mas o Laravel ainda sabe que há um.env
arquivo que precisa ser incluído, e que não foi bem sucedido, mas não se preocupa em contar a ninguém.Para mim, funcionou nesta ordem:
E tentei todos os demais sem sorte.
fonte
Tive um problema semelhante no meu
config/services.php
e resolvi usando os comandosconfig clear
eoptimize
:fonte
Para mim o seguinte funcionou
fonte
Rode isto:
então
php artisan config:cache
fonte
Tive o mesmo problema no ambiente local, resolvi por
fonte
Você pode resolver o problema com a seguinte recomendação
Recomendação 1:
Você deve usar o arquivo .env por meio de arquivos de configuração, o que significa que você é solicitado a ler o arquivo .env dos arquivos de configuração (como /config/app.php ou /config/database.php), então você pode usar a configuração arquivos de qualquer local do seu projeto.
Recomendação 2: defina seu valor env entre aspas duplas
Recomendação 3: mantenha a seguinte sequência de comando após alterar qualquer configuração ou valor env.
Recomendação 4: quando a sintaxe 1 não está funcionando, você pode tentar outra sintaxe 2
Recomendação 5: quando o seu número de usuários é alto / mais , você deve aumentar o tamanho da memória relacionada na configuração do servidor .
Recomendação 6: Defina um valor provável padrão ao ler a variável .env.
fonte
Quando você disparou o comando
php artisan config:cache
, ele apagará todas asenv
variáveis eenv()
fornecerá valores nulos, tente executar o comando a seguir e boom lá vocêenv()
começará novamente a capturar todas asenv
variáveisfonte
Eu perdi isso nas instruções de atualização:
Adicionar esta linha faz com que o
.env
arquivo local seja lido corretamente.fonte
A simplicidade é o poder:
Você receberá:
Cache de configuração limpo!
Configuração em cache com sucesso!
fonte
A mesma coisa acontece quando: a porta está em seu .env local
novamente as aspas duplas fazem o truque
e depois
fonte
exclua o cache usando:
fonte
Além do que @andrewtweber sugeriu, certifique-se de não ter espaços entre KEY = e o valor, a menos que esteja entre aspas
arquivo .env, por exemplo:
para:
fonte
Eu encontrei o mesmo problema no meu local e tentei todas as respostas aqui, mas sem sucesso. Só isso funcionou para mim,
php artisan config:clear
erestart server
. Funciona como um encanto!fonte
php artisan config:cache
,php artisan config:clear
entãophp artisan cache:clear
Resolvi este problema gerando uma nova chave usando o comando:
php artisan key:generate
fonte
se você chamou config: cache durante o desenvolvimento local, você pode desfazer isso excluindo o arquivo bootstrap / cache / config.php. e isso é trabalho para mim.
fonte
se você chamou config: cache durante o desenvolvimento local, você pode desfazer isso excluindo o arquivo bootstrap / cache / config.php. e isso é trabalho para mim.
@Payal Pandav fez o comentário acima.
Eu quero contar uma solução alternativa simples. Apenas edite o arquivo config.php na pasta bootstrap / cache /. E mude as credenciais. Isso funcionou para mim. Não exclua este arquivo, pois ele pode conter outros dados cruciais no ambiente de produção.
fonte
No meu caso, laravel 5.7
env('APP_URL')
não funciona, masconfig('app.url')
funciona. Se eu adicionar uma nova variável paraenv
e para config - não funciona - mas depois dephp artisan config:cache
começar funciona.fonte
php artisan optimize:clear
php artisan config:clear
lo para limpar o cache de configuração e não gerar novamente e quando você entrar em produção, você pode executar ophp artisan config:cache
cache de suas configuraçõesSe você executar este
php artisan config:cache
comando no console, ele armazenará todo o conteúdo do arquivo .env no cache; após este comando, se você anexar qualquer conteúdo ao arquivo .env, ele não estará disponível até que você execute ophp artisan config:clear
comandofonte
Eu enfrento o mesmo problema muitas vezes durante o desenvolvimento larval. algumas vezes env para de funcionar e não retorna nenhum valor. esse motivo pode ser diferente, dependendo da sua situação. mas no meu caso, alguns dias atrás, eu apenas corri
portanto, tenha cuidado ao usar este comando. porque apagará todos os dados de configuração de seu cache. então, depois disso, ele não retornará nenhum valor. Portanto, nesta situação, você precisa usar isso primeiro se tiver executado o comando PHP artisan config :: clear .
fonte
Eu experimentei isso. A razão era que o apache (usuário www-data) não conseguia ler .env devido às permissões do arquivo. Então, mudei as permissões do arquivo para garantir que o servidor (apache) tivesse permissões de leitura para o arquivo. Só isso e bum, estava tudo funcionando agora!
Atualização:
como fazer isso varia, dependendo de quem é o proprietário do arquivo .env, mas presumindo que ele pertença ao
www-data
grupo Apache , você pode fazer o seguinte:Modifique-o de acordo com sua estrutura de permissão.
fonte
So i changed the file permissions to ensure that the server (apache) had read permissions to the file.
esta é realmente uma abordagem errada. Você deve ter corrigido a configuração do apaxhe para que sirva a este site em particular como o proprietário desses arquivosCometi o erro ao fazer dd / die / dump no
index.php
arquivo. Isso faz com que o sistema não gere novamente as configurações.Basta fazer o dump em view files. As mudanças no
.env
arquivo são atualizadas instantaneamente.fonte
Eu tive alguns problemas com isso. Parecia ser um problema de permissão de arquivo em algum lugar do aplicativo - não no arquivo .env.
Eu tive que - parar meu docker - usar chown para definir direitos de propriedade para meu próprio usuário para todo o projeto - iniciar o docker novamente
Desta vez funcionou.
fonte
Tentei quase todas as opções acima. Acabou fazendo
chmod 666 .env
que funcionou. Este problema parece continuar surgindo no aplicativo que herdei, no entanto, o momento mais recente foi após adicionar um .env.testing. Executando o Laravel 5.8
fonte