Falha ao gravar dados da sessão [closed]

2

Eu tenho um VPS rodando no CentOS 5 com o Plesk 9.
Meu site nos rodando no FastCGI.

Estou tendo problemas em ler / escrever sessões. Nos meus servidores error_log , recebo os seguintes erros:

(...) Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0  

(...) open(/var/lib/php/session/sess_v8g5rt6p83b9one3mlg9sh9ts0, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Estou tentado a mudar

session.save_path = "/var/lib/php/session"
para session.save_path = "/tmp"

O problema é que /tmp tem chmod 777, então não tenho certeza se esse é o melhor caminho a seguir?

Atualizar
O session dir tem os seguintes direitos: -rwxrwx--- usuário root grupo apache

    
por Steven 25.01.2011 / 02:25

2 respostas

7

Por que você não corrigiu as permissões em /var/lib/php/session ? Esse diretório simplesmente precisa ser gravável pelo usuário do httpd (que, dependendo do sistema operacional, pode ser algo como www-data ou apache ; procure a diretiva User no seu httpd.conf ).

Os comandos serão parecidos com:

chown apache /var/lib/php/session
chmod 700 /var/lib/php/session

Isso torna o diretório gravável pelo usuário apache e geralmente inacessível a todos os outros.

    
por 25.01.2011 / 02:33
1

Isso aconteceu comigo depois que eu mudei para executar php usando o fcgi para resolver problemas de permissões. Antes dessa mudança, os scripts php eram executados como apache: apache, o que resultava em erros de permissão (a menos que você tenha chmod 777 'd todos os diretórios, o que é muito perigoso). Depois de mudar para o método fcgi de executar php, os scripts php agora são executados como grupo de usuários psacln, no entanto, o diretório / var / lib / php / session ainda era de propriedade de root: apache. Minha solução foi chown root:psacln /var/lib/php/session ; chmod 770 /var/lib/php/session

    
por 13.12.2011 / 09:49