FOS UserBundle ошибка сервера при попадании ссылки на выход


Я новичок в пользовательском сообществе FriendsOfSymfony, и все шло хорошо, пока я не попытался выйти из системы. Вход в систему работает отлично, и я использую базовую конфигурацию, которую я видел на многих сайтах. У меня есть только 2 пользователя, которым нужно войти в систему. Проблема возникает, когда пользователь нажимает на URL-адрес выхода из системы. В этом случае /выход из системы. Я получаю общую ошибку сервера в браузере, и в журнале ошибок отображается "Преждевременное завершение заголовков сценариев: app_dev.php ". Если я нажму обновить при ошибке страница он возвращается на мою домашнюю страницу, и я успешно вышел из системы.

Вот мой раздел брандмауэра в 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

Вот раздел access_control в security.yml:

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 }

Вот раздел fos_user в файле config.yml

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)"} []

Поиск по этому вопросу изначально показал, что беспокоиться не о чем, но у меня нет других идей. Это моя последняя задача в заставляю охрану работать, и это выводит меня из себя.

Я с радостью предоставлю любую другую информацию, необходимую для решения этой действительно раздражающей проблемы. Заранее благодарю за любую помощь.

Author: akwebb1, 2013-07-27

1 answers

Это ошибка PHP. Вам необходимо обновить php до minium 5.4.11.

Ссылка:

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

 3
Author: Max Małecki, 2013-07-28 09:09:32