Symfony 3.1.5 attention: SessionHandler:: read (): le fichier de données de Session n'est pas créé par votre uid

J'exécute Symfony 3.1.5 sur une pile Ubuntu 14.04, PHP 7.1 et Apache 2.4.23 gérée par Vagrant 1.8.6/VirtualBox 5.1.6. J'essaie d'utiliser un simple contrôleur que j'ai fait pour rendre une réponse sur mon frontend:

<?php

namespace AppBundleController;

use SensioBundleFrameworkExtraBundleConfigurationRoute;
use SymfonyComponentBrowserKitResponse;

class LandingController {
    /**
     * @Route("/", name="homepage")
     */
    public function showAction(){
        return new Response('This is the landing page!');
    }
}

quand je tente d'accéder à ma façade Symfony via /app_dev.php je vois:

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

Mon log d'Apache se lit comme suit:

CRITICAL - Uncaught PHP Exception SymfonyComponentDebugExceptionContextErrorException: "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 journal se lit comme suit:

==> /var/www/conan/var/logs/dev.log <== [2016-10-11 14:23:04] request.INFO: Matched route "{route}". {"route":"homepage","route_parameters":{"_controller":"AppBundleControllerLandingController::showAction","_route":"homepage"},"request_uri":"http://conan.dev/app_dev.php/","method":"GET"} [] [2016-10-11 14:23:04] request.CRITICAL: Uncaught PHP Exception SymfonyComponentDebugExceptionContextErrorException: "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] (SymfonyComponentDebugExceptionContextErrorException(code: 0): Warning: SessionHandler::read(): Session data file is not created by your uid at /var/www/conan/var/cache/dev/classes.php:366)"} []

vu que cela semble être une session, j'ai évoqué la documentation Symfony Gestion Des Sessions. Il déclare:

les sessions Symfony sont incompatibles avec php.session directive ini.auto_start = 1 Cette directive doit être désactivée en php.ini, dans les directives webserver ou in .htaccess.

session.auto_start = 0 dans mon php.ini et le fichier est la propriété de l'utilisateur et groupe 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

j'ai essayé de créer un .htaccess (que j'ai placé dans mon DocumentRoot) selon les instructions de la documentation Symfony, mais l'erreur persiste.

j'ai cherché plusieurs pistes et questions pour trouver une solution mais je n'ai rien trouvé. Toutes les idées ce qui en est la cause?

24
demandé sur marcusnjones 2016-10-11 17:52:47

9 réponses

Édition config/config.yml et en remplaçant save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"save_path: /var/lib/php/sessions correction de l'erreur.

si vous utilisez un éditeur/IDE qui convertit automatiquement les espaces en onglets, assurez-vous de désactiver cette fonctionnalité avant de sauvegarder vos modifications. Si vous ne le faites pas, une erreur "ne contient pas de YAML valide" peut se produire.

47
répondu marcusnjones 2016-10-11 18:28:54

j'ai eu le même problème. Le correctif qui a fonctionné pour moi est de changer var/sessions propriétaire www-data:www-data (même utilisateur / groupe pour les sous-processus php-fpm):

sudo chown -R www-data:www-data var/sessions/
14
répondu Takman 2016-12-03 17:47:16

eviter de modifier la configuration de prod pour les problèmes qui ne se produisent que dans l'environnement de développement

a eu le même problème lors de L'utilisation de Vagrant (PHP-FPM 7 + Nginx) avec un dossier sync (/vagrant ~ default)

résolu vient de mettre

    session:
        save_path: '/tmp'

config_dev.yml à l'intérieur cadre entrée

il suffit de choisir un endroit que Webserver et PHP peuvent lire / écrire sans permission question.

13
répondu Marcos Regis 2017-08-31 15:24:33

Si Magento 2 génère cet avertissement,

supprimer session déjà existante à l'intérieur de var/session dossier fixe.

5
répondu Vinith 2017-08-25 20:59:42

j'ai eu un problème similaire et le nettoyage du cache de mon navigateur et des données stockées a résolu le problème.

sur chrome et opera, vous devez:

Developer tools > Application > Clear Storage > Clear Site Data
3
répondu Jesus Adolfo Rodriguez 2017-07-19 13:55:18

Dans mon cas, * suppression des cookies de navigateur a réglé le problème. Je n'ai fait aucune des étapes mentionnées ci-dessus et j'ai essayé de changer les permissions et tout mais non ce n'était pas le problème. J'ai été confrontés à un problème sur magento.

2
répondu Shahzaib Hayat Khan 2018-05-29 05:41:54

le chemin de Session ne peut pas être écrit puisque l'utilisateur web et le propriétaire du contenu dans le dossier sessions sont différents et donc ne le peuvent pas .

la Solution est de configurer votre /var ou/var / sessions / propriété à l'utilisateur web.

chown apache: apache / var / - R * Ou: chown www-data: www-data / var / - R *

Plus de réponse nominale n'est pas vraiment la meilleure réponse ici.

0
répondu D Hersch 2018-02-23 20:29:29

j'utilise PIMCORE qui est basé sur symfony 3. Pour résoudre ce problème,je viens de vider la mémoire cache du navigateur.

j'espère que cela aidera.

0
répondu Faiyaz Alam 2018-08-16 09:06:21

vous utilisez le mauvais namespace de réponse.

Vous avez use Symfony\Component\BrowserKit\Response; et doit être use Symfony\Component\HttpFoundation\Response;

-3
répondu Dmitry Malyshenko 2016-10-11 15:38:38