Ir para o conteúdo
NetworkVPS
Guia de php

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.