Cet article présente les systèmes de gestion de sessions qu’on peut utiliser avec Magento.

 

Rappel de fonctionnement des sessions PHP

Il s’agit de sauvegarder temporairement sur le serveur les informations relatives à un internaute.

 

À chaque ouverture de session, l’internaute se voit attribué un identifiant de session. Cet identifiant peut être transmis soit parGET, POST ou Cookie. Les informations sont quant à elles accessibles de page en page via cet identifiant.

 

Ainsi, la sécurité et l’intégrité des données se voient améliorées ainsi que leur disponibilité tout au long de la session.

 

Parmi les utilisations les plus courantes des sessions, on trouve :

  • Les espaces membres et accès sécurisés avec authentification
  • Gestion d’un caddie sur un site de vente en ligne
  • Stockage d’informations relatives à la navigation de l’utilisateur

La session est quant à elle détruite à la fermeture du navigateur, ou au bout de 24 minutes.

 

 

Le problème est que Magento n’utilise pas le système de sessions PHP.

 

Magento : quel système de gestion de sessions choisir

Magento utilise son propre système de gestion de sessions (d’où le session.auto_start off dans le .htaccess).
À ce titre nous avons été confrontés à l’inefficacité de solutions telles que Sharedance.

 

Après avoir mené quelques investigations, 3 modes de gestion de sessions sont disponibles.
Sur ces 3 modes, 2 vous sont proposés à l’installation de Magento, à savoir :

 

« Gestion des sessions en local », ce mode par défaut ne nous intéresse pas, les sessions seraient sauvegardées dans le répertoire /tmp/magento/var/session et dans le cadre d’un système clusterisé il serait nécessaire de mutualiser ce répertoire, via NFS par exemple. En termes de performance cette solution est loin d’être idéale.

 

« Gestion des sessions par Base de données », c’est précisément ce mode de gestion qui va nous intéresser, il suffit pour cela de choisir l’option appropriée lors de l’étape 3 de l’assistant d’installation : « Save session data in Database ».

 

Si l’installation a déja été effectuée, il vous suffit simplement de modifier votre configuration dans le fichier app/etc/local.xml.

 

{literal}

--- local.xml  2009-04-12 14:05:13.000000000 +0200
+++ local.xml.  2009-04-12 14:04:51.000000000 +0200
@@ -48,7 +48,7 @@
                 
             
         
-        
+        
      
      
         

{/literal}

 

Une fois la modification effectuée, n’oubliez pas de supprimer le contenu des fichiers /tmp/magento/var/session et/tmp/magento/var/cache
Les sessions devraient à présent apparaître dans la table core_session.

 

« Gestion des sessions via un serveur memcached » : enfin il est également possible de gérer les sessions via un serveurMemcached. Cette solution, après avoir effectué quelques tests, n’est généralement pas retenue par nos clients en raison de labaisse de performances.