Symfony 3.1.5 Предупреждение: SessionHandler :: read (): Файл данных сеанса не создан вашим uid

Я запускаю Symfony 3.1.5 на стеках Ubuntu 14.04, PHP 7.1 и Apache 2.4.23, управляемых Vagrant 1.8.6 / VirtualBox 5.1.6. Я пытаюсь использовать простой контроллер, который я сделал для предоставления ответа на мой интерфейс:

<?php namespace AppBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Component\BrowserKit\Response; class LandingController { /** * @Route("/", name="homepage") */ public function showAction(){ return new Response('This is the landing page!'); } } 

Когда я пытаюсь получить доступ к моему интерфейсу Symfony через /app_dev.php я вижу:

Warning: SessionHandler::read(): Session data file is not created by your uid 500 Internal Server Error - ContextErrorException

Мой журнал Apache гласит:

CRITICAL - Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Warning: SessionHandler::read(): Session data file is not created by your uid" at /var/www/conan/var/cache/dev/classes.php line 366

В журнале Symfony dev говорится:

==> /var/www/conan/var/logs/dev.log <== [2016-10-11 14:23:04] request.INFO: Matched route "{route}". {"route":"homepage","route_parameters":{"_controller":"AppBundle\\Controller\\LandingController::showAction","_route":"homepage"},"request_uri":"http://conan.dev/app_dev.php/","method":"GET"} [] [2016-10-11 14:23:04] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Warning: SessionHandler::read(): Session data file is not created by your uid" at /var/www/conan/var/cache/dev/classes.php line 366 {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ContextErrorException(code: 0): Warning: SessionHandler::read(): Session data file is not created by your uid at /var/www/conan/var/cache/dev/classes.php:366)"} []

Поскольку это похоже на проблему, связанную с сеансом, я упомянул о документации Symfony для управления сеансом. Говорится:

Сеансы Symfony несовместимы с директивой php.ini session.auto_start = 1 Эта директива должна быть отключена в php.ini, в директивах веб-сервера или в .htaccess.

session.auto_start = 0 в моем php.ini и файл принадлежит пользователю и группе root :

$ ls -lta /etc/php/7.1/fpm/php.ini -rw-r--r-- 1 root root 70584 Sep 30 07:29 /etc/php/7.1/fpm/php.ini

Я попытался создать .htaccess (который я разместил в своем DocumentRoot ) в соответствии с инструкциями в документации Symfony, но ошибка сохраняется.

Я искал несколько тем и вопросов для решения, но ничего не приземлялся. Любые идеи, что вызывает это?

Редактирование config/config.yml и замена save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%" с save_path: /var/lib/php/sessions исправили ошибку.

Если вы используете редактор / IDE, который автоматически преобразует пробелы в закладки, обязательно отключите эту функцию перед сохранением изменений. Невыполнение этого требования может привести к ошибке «не содержит допустимой ошибки YAML».

У меня такая же проблема. Исправление, которое сработало для меня, заключается в изменении владельца var/sessions на www-data:www-data (тот же пользователь / группа для подпроцессов php-fpm):

 sudo chown -R www-data:www-data var/sessions/ 

ИЗБЕГАЙТЕ изменить конфигурацию prod для проблем, которые возникают только в среде разработки

Имела ту же проблему при использовании Vagrant (PHP-FPM 7 + Nginx) с папкой синхронизации (/ vagrant ~ default)

Решено только что положить

  session: save_path: '/tmp' 

on config_dev.yml внутри фреймворка

Просто выберите место, которое Webserver и PHP могут читать и писать без разрешения.

Если Magento 2 генерирует это предупреждение,

Просто удалите уже существующий сеанс внутри папки var/session и его исправлено .

У меня была аналогичная проблема и очистка кеша моего браузера, и сохраненные данные решили проблему.

В хроме и опера вы должны:

 Developer tools > Application > Clear Storage > Clear Site Data 

Вы используете неправильное пространство имен Response.

Вы use Symfony\Component\BrowserKit\Response; и должен use Symfony\Component\HttpFoundation\Response;