2013-07-27 57 views
2

我是FriendsOfSymfony UserBundle的新手,在嘗試註銷用戶之前,一切都進行得很順利。登錄工作正常,我正在使用我在許多網站上看到的基本配置。我只有2個用戶需要登錄。當用戶點擊註銷URL時會出現問題。在這種情況下/註銷。我在瀏覽器中發現了一個通用服務器錯誤,並且error_log顯示「腳本頭的提前結束:app_dev.php」。如果我在錯誤頁面上進行刷新,它會返回到我的主頁,並且我已成功註銷。註銷鏈接命中時FOS UserBundle服務器錯誤

這裏是security.yml我的防火牆部分:

firewalls: 
    main: 
     pattern: ^/ 
     form_login: 
      provider: fos_userbundle 
      check_path: fos_user_security_check 
      csrf_provider: form.csrf_provider 
     logout: true 
     anonymous: true 

這裏是security.yml的ACCESS_CONTROL部分:

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel:https } 
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/logout, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin/, role: ROLE_ADMIN } 

這裏是config.yml的fos_user部分

fos_user: 
    db_driver: orm 
    firewall_name: main 
    user_class: Wielding\BassBundle\Entity\User 

我正在生成我的樹枝形式的註銷url:

<a href="{{ path('fos_user_security_logout') }}">logout</a> 

如果我沒有登錄到網站,並且我手動去註銷url,我會重定向到默認索引頁面而沒有任何錯誤。如果我登錄並手動輸入註銷URL,則會出現服務器錯誤。我已經嘗試過很多配置更改的變體,我甚至不能在這裏列出它們。他們都失敗了。

我甚至試圖通過使控制器中的會話無效併產生相同的錯誤來編寫自己的註銷。

我唯一的線索迄今爲止是dev.log項:

[2013-07-27 14:51:26] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Warning: SessionHandler::write(): Parent session handler is not open in /home/dev2/app/cache/dev/classes.php line 407" at /home/dev2/app/cache/dev/classes.php line 407 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ContextErrorException: Warning: SessionHandler::write(): Parent session handler is not open in /home/dev2/app/cache/dev/classes.php line 407 at /home/dev2/app/cache/dev/classes.php:407)"} [] 

搜索這個最初表示,這是不是擔心,但我出其他的想法。這是我獲得安全工作的最後一項任務,它讓我感到害怕。

我會很樂意提供任何其他信息來幫助解決這個真正煩人的問題。預先感謝您的幫助。

+0

什麼是你的PHP版本? – rpg600

+0

我正在運行5.4.4-14 + deb7u2 – akwebb1

回答

3

這是PHP的錯誤。您需要將php升級到minium 5.4.11。

參考:

https://github.com/symfony/symfony/issues/5868

+0

我決定把它推到我的生產箱,因爲它不是一個嚴重的錯誤,而且奇怪的是它似乎在那裏工作。除了生產服務器正在爲其他站點服務外,服務器應該是相同的。 PHP版本匹配5.4.4-14 + deb7u2。 – akwebb1

+0

更新至5.4.11最低版本 – rpg600

+0

謝謝,我會研究更新至5.4.11。我不知道什麼是最好的辦法,因爲我在我的服務器上使用webmin/virtualmin,他們從標準的debian repo安裝php。 – akwebb1