2013-08-22 67 views
5

我在Symfony 2.3中使用FOSFacebookBundle,正如它在the Integration with FOSUserBundle documentation中所述。和編輯security.yml,跑的代碼,但我得到了錯誤:SessionHandler :: write():父會話處理程序未打開

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

,所以我給的權限:

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

當我再次登錄,然後註銷頁,我得到了同樣的錯誤。

我看到這個https://github.com/symfony/symfony/issues/5868並更新了php。

但這個問題不解決我不知道爲什麼? 任何人都知道請告訴我嗎?

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

我認爲這不是因爲FOSBundle,我也嘗試用我自己的lib註銷,並得到相同的錯誤。我使用php5.4.10。按照@Tristan建議更新您的PHP版本。 – GusDeCooL

回答

10

喜歡在github上票mentionned的問題是關係到PHP所以注意在Symfony2的側做的錯誤。

請考慮從目前的php 5.4.x移到更新的版本。

根據正在添加這個你應至少使用> = 5.4.11 PHP

this commit

1

快速的解決辦法是:

logout: 
    invalidate_session: false 

編輯:

注意會話註銷後不會被銷燬。 我會推薦@Tristan解決方案。

+0

謝謝,但當我更新PHP然後問題解決:) – Sid