2 votes

Session perdue avec Symfony 2.8 sur un serveur mutualisé ovh

J'utilise Symfony 2.8 avec FOSUserBundle 2. J'ai mis à jour mon offre sur ovh et certains éléments de ma configuration php ont changé. J'ai un gros problème car mes utilisateurs ne peuvent pas se connecter au site web (il se déconnecte après environ 5 minutes). C'est le site d'une association qui compte environ 8000 membres et chaque membre peut se connecter... Avant, la session écrivait dans un dossier spécial (app/var/session). Je sais qu'elle devrait écrire dans le dossier cache mais ce n'est pas le cas.

J'ai un htaccess dans le dossier www et dans le dossier du projet qui contient :

SetEnv SHORT_OPEN_TAGS 0
SetEnv REGISTER_GLOBALS 0
SetEnv MAGIC_QUOTES 0
SetEnv SESSION_AUTOSTART 0
SetEnv ZEND_OPTIMIZER 1
SetEnv PHP_VER 5_6

dans mon config.yml, j'ai :

    session:
        cookie_lifetime: ~
        # handler_id: session.handler.native_file
        # save_path: '%kernel.root_dir%/var/sessions'

A titre d'information, ceci fait partie de mon composer.json :

"require": {
    "php": ">=5.3.9",
    "symfony/symfony": "2.8.*",
    "doctrine/orm": "^2.4.8",
    "doctrine/doctrine-bundle": "~1.4",
    "twig/extensions": "1.4.*",
    "symfony/assetic-bundle": "2.8.*",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.11.3",
    "sensio/distribution-bundle": "~5.0",
    "sensio/framework-extra-bundle": "^3.0.2",
    "sensio/generator-bundle": "~3.0@dev",
    "incenteev/composer-parameter-handler": "~2.0",
      "symfony/dom-crawler" :"3.2.*",
    "friendsofsymfony/user-bundle": "~2.0@dev",
    "gregwar/image-bundle": "dev-master"
},
"require-dev": {
    "leafo/lessphp": "0.5.0",
    "sensio/generator-bundle": "~3.0",
    "symfony/phpunit-bridge": "~2.7"
},

Mes dossiers cache et logs sont en chmod -R 777 Cela fonctionne parfaitement (cela signifie que le fichier de session est créé dans le dossier cache) lorsque je déploie sur mon ordinateur local. Il ne fonctionne toujours pas (ce qui signifie que le fichier de session n'est pas créé) si j'entre l'url directe au lieu de www.mydomain.com (ce n'est donc pas un problème de configuration multisites ovh). Cela ne fonctionne pas non plus lorsque je suis dans l'environnement de développement. Si je regarde dans les logs, je ne vois pas d'erreur.
Il y a certainement une erreur de configuration de php. Ai-je oublié de définir une variable php importante ? Une idée ?
Merci beaucoup.

0voto

fecou Points 11

Comme je n'arrivais pas à le faire fonctionner, j'ai finalement découvert que je pouvais gérer les sessions dans la base de données en utilisant le gestionnaire pdo. Je ne suis pas convaincu que ce soit la meilleure solution, mais c'est quand même une solution. Pour plus d'explications, consultez le site doc symfony pdo_session_storage

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X