Como configurar session.save_path no PHP
Entenda por que o PHP precisa de uma pasta de sessão absoluta, privada e gravável, e como diagnosticar o erro sem expor arquivos do usuário.
O que esse erro significa
Ao chamar session_start(), o PHP precisa gravar um arquivo ou usar outro mecanismo de armazenamento. Se session.save_path estiver vazio, apontar para uma pasta inexistente ou não permitir escrita ao processo PHP, a sessão falha. O login pode parecer o culpado, mas a causa está no armazenamento usado por ele.
Características do caminho correto
- Deve ser absoluto, porque o diretório atual pode mudar entre requisições.
- Precisa existir antes do primeiro session_start().
- O processo que executa o PHP precisa poder criar, ler e remover os próprios arquivos.
- Deve ficar fora da raiz pública, para que um navegador nunca baixe uma sessão.
- Cada conta deve usar uma área privada própria quando o servidor hospeda vários clientes.
Onde definir
A configuração pode ser aplicada no php.ini do processo, na configuração do pool/servidor ou, quando permitido, antes de iniciar a sessão. Em hospedagem gerenciada, a solução mais segura é o provedor definir o caminho por conta e reiniciar o processo PHP após a mudança.
- Confirme o valor efetivo usado pelo mesmo processo que atende o site.
- Não confie apenas no php.ini da linha de comando se o site usa outro executável ou configuração.
- Evite usar a pasta pública como correção rápida.
Como validar a correção
Teste uma requisição que inicia a sessão, grava um valor e o lê em outra requisição. Verifique também o log do PHP e confirme que os arquivos criados não podem ser acessados por URL. Depois, remova qualquer página de diagnóstico que exponha configurações internas.
Precisa colocar isso em produção?
A NetworkVPS reúne hospedagem, domínio, banco e suporte de publicação no mesmo painel.
