2013-08-22 3 views
5

Uso FOSFacebookBundle in Symfony 2.3 come indicato in the Integration with FOSUserBundle documentation. E curato security.yml, ha eseguito il codice, ma ho ottenuto l'errore:SessionHandler :: write(): il gestore della sessione principale non è aperto

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

così ho dato i permessi:

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

quando faccio il login di nuovo, e poi disconnettersi pagina ottengo lo stesso errore.

Vedo questo https://github.com/symfony/symfony/issues/5868 e aggiorno il php.

Ma questo problema non si risolve Non so perché? Qualcuno sa per favore dimmelo?

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

Penso che questo non sia dovuto al fatto che FOSBundle, ho provato il logout anche con la mia lib, e ho ottenuto lo stesso errore. io uso php5.4.10. Segui @Tristan consiglia di aggiornare la tua versione di PHP. – GusDeCooL

risposta

10

Il problema come menzionate nelle biglietto su GitHub è un bug relativo al PHP quindi non c'è niente da fare nel lato Symfony2.

Considerare lo spostamento dall'attuale php 5.4.x a una versione più recente.

Secondo questo Comming si dovrebbe almeno utilizza> = 5.4.11 php

Vedi this commit

1

soluzione veloce potrebbe essere:

logout: 
    invalidate_session: false 

EDIT:

Siate consapevoli della sessione non verrà distrutto dopo il logout. Vorrei raccomandare la soluzione @Tristan.

+0

Grazie ma quando aggiorno Php il problema è risolto :) – Sid