Problemas de sessão do Symfony com o Vagrant

Eu criei uma caixa vagrant com lâmpada com PHP 5.6, mas minhas sessões não queriam começar. Após algumas pesquisas, percebi que meu session.save_path estava vinculando uma pasta que foi “montada” pelo vagrant. Isso fez com que o PHP falhasse na gravação de sessões e fez com que o symfony não pudesse usar as sessões.

EDIT: Isso só parece ocorrer no Mac

Etapa 1: Procure por seu session.save_path em phpinfo ();

Cenário

Se o valor local apontar para uma pasta “montada” pelo vagrant, isso causará problemas. No meu caso, / vagrant / é minha pasta de montagem.

Você também pode usar o seguinte caso de teste para reproduzir seu problema:

Crie um test.php em seu projeto:

<?php

session_save_path
('/vagrant/sessions');
session_start
();

file_put_contents
('/vagrant/sessions/file.txt', 'TEST');

Se você executar esta linha de comando, verá que o file.txt foi criado com êxito e a criação de sua sessão fornece o seguinte aviso:

Aviso de PHP: Desconhecido: Falha ao gravar os dados da sessão (arquivos). Verifique se a configuração atual de session.save_path está correta (/ vagrant / sessions) em Desconhecido na linha 0

Etapa 2: Resolvendo o problema
Crie uma pasta para as suas sessões a serem gravadas:

mkdir -p /var/lib/php5/<folder>
chown vagrant
:vagrant /var/lib/php5/<folder>

Adicione esta linha à sua configuração para dizer ao symfony para escrever sua sessão no caminho de sessão padrão ao invés do 1 que você viu na Etapa 1.

framework:
session
:
handler_id
: session.handler.native_file
save_path
: /var/lib/php5/<folder>

Cenário

Etapa 3: aproveite

Documentação:
http://symfony.com/doc/current/cookbook/session/sessions_directory.html
https://ctors.net/2014/04/21/symfony_slow_in_vagrant

Todas as minhas dicas foram movidas para o meu blog www.pix-art.be, então venha conferir!