2013-08-22 12 views
5

Używam FOSFacebookBundle w Symfony 2.3, jak to jest napisane w the Integration with FOSUserBundle documentation. I edytowane security.yml, prowadził kod ale mam błąd:SessionHandler :: write(): Obsługa sesji rodzica nie jest otwarta

Warning: SessionHandler::write(): Parent session handler is not open in /var/www/my/app/cache/dev/classes.php line 407 

więc dałem uprawnienia:

sudo chmod 777 -R app/cache 
sudo chmod 777 -R app/logs 

Kiedy zalogować się ponownie, a następnie wylogować strona pojawia się ten sam błąd.

Widzę to https://github.com/symfony/symfony/issues/5868 i zaktualizuję php.

Ale ten problem nie rozwiązuje się Nie wiem dlaczego? Ktoś wie, proszę mi powiedzieć?

security.yml

security: 
encoders: 
    FOS\UserBundle\Model\UserInterface: sha512 

role_hierarchy: 
    ROLE_ADMIN:  ROLE_USER 
    ROLE_SUPER_ADMIN: ROLE_ADMIN 

providers: 
    chain_provider: 
     chain: 
     providers: [fos_userbundle, my_fos_facebook_provider] 
    fos_userbundle: 
     id: fos_user.user_provider.username 
    my_fos_facebook_provider: 
     id: my.facebook.user  

firewalls: 
    main: 
     pattern: ^/ 
     fos_facebook: 
      app_url: "http://apps.facebook.com/xxxx/" 
      server_url: "http://symfony/app_dev.php/login" 
      login_path: /login 
      check_path: /loginFb 
      default_target_path:/
      provider: my_fos_facebook_provider 
     form_login: 
      login_path: /login 
      check_path: /login_check  
      provider: fos_userbundle 
     logout:  true 
     anonymous: true 

access_control: 
    - { path: ^/secured/.*, role: [IS_AUTHENTICATED_FULLY] } 
    - { path: ^/.*, role: [IS_AUTHENTICATED_ANONYMOUSLY] } 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin/, role: ROLE_ADMIN } 
+1

Myślę, że to nie dlatego, że FOSBundle, próbowałem również wylogować się z własną biblioteką i uzyskać ten sam błąd. Używam php5.4.10. Śledź @Tristan sugeruje zaktualizować wersję PHP. – GusDeCooL

Odpowiedz

10

Problem jak wymieniono w bilecie na github jest błąd związany z PHP więc nie notuje się zrobić w bok Symfony2.

Rozważ zrezygnowanie z aktualnej wersji php 5.4.x w nowszej wersji.

Według tego comming należy być przynajmniej użyciem> = PHP 5.4.11

Zobacz this commit

1

Szybkie rozwiązanie mogłoby być:

logout: 
    invalidate_session: false 

EDIT:

Sesja świadoma nie zostaną zniszczone po wylogowaniu. Polecam rozwiązanie @ Tristan.

+0

Dzięki, ale kiedy aktualizuję Php, to problem rozwiązany :) – Sid