laravel

Laravel não está lendo .arquivo env após mudança

Laravel não está lendo .arquivo env após mudança

Problema

Este é um problema bastante comum que aparece entre os novos desenvolvedores do Laravel.

Muitas pessoas têm tentado atualizar seus .env arquivo apenas para ver se, quando eles atualizam seu aplicativo, o .valores de configuração de env não estão aparecendo.

E o que é mais interessante é que, muitas vezes, isso aparecerá depois que você atualizar sua versão do Laravel.

Então, por exemplo, você teria isso em seu .arquivo env:

DB_DATABASE = laraveldb
DB_USERNAME = laraveluser

Então, naturalmente, dentro do config / banco de dados.arquivo php você teria este:

'mysql' => [
'banco de dados' => env ('DB_DATABASE', 'lar'),
'username' => env ('DB_USERNAME', 'lar'),
]

forge aqui representa os valores padrão. Isso significa que esses valores serão usados ​​caso você não tenha fornecido seu DB_DATABASE e DB_USERNAME valores dentro do seu .arquivo env. Esta informação será útil em breve.

Agora, como você sabe que tem esse problema específico é se encontrar a seguinte exceção:

PDOException: SQLSTATE [HY000] [1045] Acesso negado para o usuário 'lar' @ 'localhost'
(usando senha: NÃO)

Isso mostra claramente que seu aplicativo Laravel está puxando o valor padrão de seu config / banco de dados.php arquivo e não do seu .env .

Antes de fazer qualquer outra coisa, você também pode tentar verificar esse problema usando também o php artisan tinker:

>>> env ('DB_DATABASE')
=> nulo
>>> getenv ('DB_DATABASE')
=> falso
>>> config ('banco de dados.conexões.mysql.base de dados')
=> “Lar”
>>> dd ($ _ ENV)
[]

Você verá frequentemente que fazer o seguinte também não fará diferença. No entanto, os desenvolvedores tentam testar sua configuração executando uma instalação completamente nova do Laravel e apenas copiando a pasta do aplicativo antigo. Eles não executam nenhuma instalação de pacote composer ou fazem qualquer outra coisa.

A menos que você esteja no Linux (contarei o porquê mais tarde), você não verá nenhuma mudança.

Solução

Como sempre, há muitas coisas que você pode fazer para tentar resolver esse problema, mas algumas delas têm maior probabilidade de sucesso.

Limpe o seu cache de configuração

Em primeiro lugar, se ainda não o fez, você deve limpar o cache de configuração antes de fazer qualquer outra coisa.

Como nosso código está usando muitas bibliotecas hoje em dia, somos forçados a armazenar em cache as coisas para fazer um acesso rápido a elas durante o tempo de execução.

Eu pessoalmente tive problemas com isso no Windows e no Mac, no entanto, notei que por algum motivo, no Linux (Ubuntu) esses arquivos de configuração ou são limpos com algum tipo de gancho ou não estão sendo armazenados em cache, porque fui capaz de recarregue o aplicativo com novo .valores env sem fazer o seguinte.

Certifique-se de limpar o cache de configuração executando os seguintes comandos:

php artisan config: cache
php artisan config: clear

Verifique se há espaços vazios em seu .arquivo env

A próxima solução é ter espaços em branco dentro de seu .arquivo env. E este é onde a maioria das pessoas falha e começa a rasgar o cabelo.

É muito fácil perder isso, mas como exemplo o que você poderia ter em seu .O arquivo env é algo assim:

SITE_NAME = Meu aplicativo Laravel

Isso por si só não funcionará, pois os espaços em branco irão corromper o .arquivo env.

O que você precisa fazer é envolver seus valores entre aspas, assim:

SITE_NAME = ”Meu aplicativo Laravel”

Desta vez, tudo deve funcionar bem.

Apenas certifique-se de limpar o cache de configuração sempre que fizer uma alteração. Podemos fazer isso da mesma forma que antes:

php artisan config: cache
php artisan config: clear
Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...
Top 5 cartas de captura de jogos
Todos nós vimos e amamos streaming de jogos no YouTube. PewDiePie, Jakesepticye e Markiplier são apenas alguns dos melhores jogadores que ganharam mil...
Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...