Como Configurar Variáveis de Ambiente (.env) com Segurança em Produção – Guia do Sensei da GeHost
Olá, viajante do código! Aqui é o Sensei da GeHost, seu companheiro de jornada na nuvem. Hoje vamos falar de algo essencial — mas muitas vezes mal compreendido — para manter seu sistema seguro e funcionando bem no mundo real: como configurar variáveis de ambiente (.env) com segurança em produção.
Se você já usou Laravel, Node.js, Python ou qualquer framework moderno, já deve ter visto um arquivo chamado .env. Ele guarda senhas, chaves de API, URLs de banco de dados… coisas sensíveis. E aí vem a pergunta: como deixar essas informações seguras quando o site está no ar?
É aqui que entra a segurança em produção. O nosso objetivo é proteger essas variáveis — sem deixar o sistema quebrar. Vamos juntos, passo a passo?
Passo 1: Entenda o que é o arquivo .env
O arquivo .env é um arquivo simples, localizado na raiz do seu projeto, que contém pares chave-valor como:
DB_HOST=localhost
DB_USER=meu_usuario
DB_PASS=senha_segura123
API_KEY=chave_do_serviço-xyz
Esse arquivo não deve ser enviado ao GitHub — e ainda menos estar acessível via navegador. Ele é como um cofrinho com segredos do sistema.
Dica do Sensei: Nunca commita o
.envno repositório de código. Use um.gitignorepara bloquear esse arquivo.
Passo 2: Nunca deixe o .env acessível via navegador
Em produção, o mais comum é que o arquivo .env fique dentro da pasta public_html — e isso é um grande erro de segurança.
Se alguém acessar seusite.com.br/.env via navegador, ele terá acesso a todas as suas senhas e chaves. Isso é como deixar a porta do seu cofre aberta.
Resposta do Sensei: O arquivo .env deve estar fora da pasta pública — ou seja, não dentro de public_html.
Passo 3: Posicione o .env fora da pasta pública
Na GeHost, a estrutura padrão é:
public_html/→ onde o site é acessado pelo navegadorpublic_html/→ arquivos visíveis para o mundo.. (pasta acima)→ onde você pode colocar arquivos sensíveis
Então, o ideal é colocar o arquivo .env no diretório acima de public_html, ou seja, no diretório raiz da sua conta de hospedagem.
Exemplo de estrutura:
/
├── public_html/
│ ├── index.php
│ └── outras_paginas/
├── .env
└── outras_pastas/
Assim, o arquivo .env não pode ser acessado por ninguém via URL.
Passo 4: Use o Gerenciador de Arquivos do cPanel para organizar
Para colocar o arquivo no lugar certo, acesse o cPanel da sua hospedagem:
Depois de logado, vá até o Gerenciador de Arquivos:
Na tela seguinte, clique em “Document Root” (geralmente public_html) e, em seguida, clique no botão “Ir para” para entrar na pasta.
Depois, clique duas vezes no nome da pasta public_html para entrar nela. Em seguida, clique no botão “Voltar” (seta para cima) para sair da pasta pública.
Agora, você está no diretório raiz da sua conta — e é aqui que você deve colocar o arquivo .env.
Suba o arquivo .env para essa pasta raiz (acima de public_html) usando o upload ou o editor de texto do cPanel.
Passo 5: Configure o seu código para ler o .env do local certo
Seu código precisa saber onde procurar o arquivo .env. Por exemplo, em PHP (com Laravel ou outro framework), você pode usar:
// Exemplo em PHP: definir o caminho do .env
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/..');
$dotenv->load();
Isso diz ao sistema: “vá uma pasta acima de onde estou, e pegue o arquivo .env”.
Dica do Sensei: Em frameworks como Laravel, o sistema já sabe buscar o
.envautomaticamente, desde que ele esteja no diretório correto (acima depublic_html).
Passo 6: Evite variáveis sensíveis no código-fonte
Além do arquivo .env, nunca coloque senhas, chaves ou URLs de banco de dados diretamente no código.
Exemplo ruim:
$db_password = 'minhasenha123';
Exemplo bom:
$db_password = $_ENV['DB_PASS'];
Assim, o valor é lido do ambiente, não do código.
Passo 7: Use variáveis de ambiente do sistema (opcional, para segurança extra)
Na GeHost, você pode definir variáveis de ambiente diretamente no cPanel — isso é mais seguro que armazenar no arquivo .env.
Para isso:
- Acesse o cPanel → “Configurações do PHP” (ou “PHP Settings”).
- Procure por “Variáveis de Ambiente”.
- Adicione pares como:
DB_PASS→senha_segura123API_KEY→chave_do_serviço-xyz
Com isso, o sistema lê essas variáveis diretamente do ambiente do servidor — sem precisar de um arquivo .env no disco.
Dica do Sensei: Use variáveis do sistema quando puder. Elas são mais seguras, pois não ficam no disco e não podem ser acessadas por erro de configuração.
Conclusão: Segurança é hábito, não acidente
Configurar variáveis de ambiente com segurança em produção não é um “tudo ou nada”. É um conjunto de pequenas ações que, juntas, protegem seu sistema.
Resumindo:
- Nunca deixe o
.envdentro depublic_html. - Coloque o
.envacima da pasta pública. - Use o
.gitignorepara não enviar o arquivo para o GitHub. - Leia as variáveis via
$_ENV