Forum Linux.debian/ubuntu Problème de session PHP Debian Etch

Posté par  .
Étiquettes :
0
21
mar.
2008
Salut à tous.

Alors, j'ai un problème assez génant de session sous PHP.
Déjà, j'utilise une Debian Etch (mise à jour), avec Apache2.2.3-4+etch4, PHP5.2.0-8+etch10, et CakePHP comme framwork de dev.

Le truc est que mes sessions sont super courtes et donc je suis déconnecté en permanence (aussi bien sur mes site, que sur PHPMyAdmin).

J'ai remarqué que nombreux fichiers étaient crées dans /var/lib/php5/ même lorsqu'une seule session PHP devrait être utilisée.

J'ai également remarqué qu'un cron était crée sur les Debian pour PHP5 dans /etc/cron.d/php5.

Quelqu'un connait ce problème?
Est-ce que Debian à un soucis avec les sessions, ou bien est-ce ma conf. qui pose problème (en sachant que tout les fichiers genre php.ini et http.conf sont quasiment ceux qui sont crée par défaut)?


Merci d'avance.
  • # /usr/lib/php5/maxlifetime

    Posté par  . Évalué à 2.

    Vérifie la sortie de la commande /usr/lib/php5/maxlifetime, qui doit donner, en nombre d'heures, l'âge maximum des sessions avant qu'elles ne soient supprimées par le cron.

    Ça doit pouvoir se configurer avec session.gc_maxlifetime dans /etc/php5/*/php.ini.
    • [^] # Re: /usr/lib/php5/maxlifetime

      Posté par  . Évalué à 1.

      Merci pour ta réponse.
      J'ai vérifié ça, et la valeur est à 24.
      Mes sessions se perdent après environ 30 secondes max, et en plus c'est complètement aléatoire.
      Apparement le problème doit se trouver ailleurs.
      • [^] # Re: /usr/lib/php5/maxlifetime

        Posté par  . Évalué à 1.

        Ce sont des minutes.

        Ton problème est bien là.
      • [^] # Re: /usr/lib/php5/maxlifetime

        Posté par  . Évalué à 1.

        Par défaut le "session.gc_maxlifetime" dans php.ini est configuré avec une valeur de "1440" mais il s'agit de secondes
        extrait du manuel php:
        session.gc_maxlifetime entier
        " Spécifie la durée de vie des données sur le serveur, en nombre de secondes. Après cette durée, les données seront considérées comme obsolètes, et supprimées. Les données deviennent obsolètes lors du démarrage de la session."
        voir cette page => http://fr3.php.net/manual/fr/ref.session.php
        Si t'a touché a rien , ils ont du faire une boulette chez debian (1440 sec = 24 minutes)
        • [^] # Re: /usr/lib/php5/maxlifetime

          Posté par  . Évalué à 1.

          Comme le dit skud, /usr/lib/php5/maxlifetime donne en fait le temps en minute (il divise session.gc_maxlifetime / 60), qui est ensuite utilisé par find avec -cmin.

          Le fait qu'il y ai pleins de fichiers de session dans le dossier indique je pense que le problème n'est pas là, mais peut être au niveau du cookie de session (le cookie disparait, une nouvelle session est créée).

          Il faudrait vérifier les session.cookie_lifetime&cie, et la configuration du navigateur au niveau des cookies (ça marche avec un autre navigateur ?)
          • [^] # Re: /usr/lib/php5/maxlifetime

            Posté par  . Évalué à 1.

            Alors, dans mon php.ini, voila ce que je trouve:
            session.cookie_lifetime = 0
            (if 0, until browser is restarted)
            et
            session.gc_maxlifetime = 1440

            J'ai fait plusieurs tests avec IceWeasel et Firefox et Epiphany, et les comportements sont similaires.
            Ce qui est étrange c'est que parfois mes sessions durent 30 secondes, et parfois jusqu'à 20 minutes, sur un même navigateur.

            En fait je me demande si CakePHP ne redéfinirais pas les valeurs présentes dans php.ini.

            Par exemple, j'ai max_execution_time = 30, alors que certains de mes scripts de traitements sont assez lourds, et tournent pendant une demi heure sans problème.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.