Php SessionHandler::write():父会话处理程序未打开
我正在使用Symfony 2.3中的FOSFacebookBundle,如中所述。编辑了Php SessionHandler::write():父会话处理程序未打开,php,session,symfony,fosuserbundle,fosfacebookbundle,Php,Session,Symfony,Fosuserbundle,Fosfacebookbundle,我正在使用Symfony 2.3中的FOSFacebookBundle,如中所述。编辑了security.yml,运行了代码,但我得到了错误: 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
security.yml
,运行了代码,但我得到了错误:
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
当我再次登录,然后注销页面时,我得到相同的错误
我看到了这一点,并更新了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 }
github上的ticket中提到的问题是一个与
PHP
相关的bug,因此在Symfony2端需要注意
考虑从当前的PHP5.4.x
迁移到新版本
根据这个建议您至少应该使用>=PHP5.4.11
请参见快速解决方案可以是:
logout:
invalidate_session: false
编辑:
请注意,注销后不会销毁会话。
我会推荐@Tristan solution。我想这不是因为FOSBundle,我也用我自己的lib尝试了注销,但得到了相同的错误。我使用php5.4.10。按照@Tristan建议更新您的PHP版本。