OVH et les sessions
Voila, c’est officiel, je ne supporte plus l’hébergeur français OVH.com. Propriétaire d’un 90plan chez eux (hebergement mutualisé labellisé « pro ») depuis plusieurs mois, je subis à longueur de temps les bugs ou les modifications intempestives de leur plateforme : sous-domaines qui ne fonctionnent pas, ftp capricieux, scripts php mis en cache sans avoir rien demandé, etc. Leur dernière lubie : désactiver la fonction PHP session_save_path (qui permet, rappellons le, de spécifier le dossier dans le lequel sont stockées les sessions), évidemment sans prévenir personne.
Maintenant, les sessions sont stockées dans le repertoire local /tmp du serveur web. Or, OVH utilise une grappe de serveurs web, et on est redirigé vers l’un ou l’autre en fonction de la charge. Une fois qu’un serveur est affecté à une adresse IP, on garde le même pendant un certain temps. Mais quand le serveur change, la session n’est plus accessible et donc l’utilisateur est déconnecté. Le problème est encore pire dans le cas d’entreprises qui utilisent plusieurs adresses IP sortantes (l’adresse peut changer à chaque page) : impossible d’utiliser correctement une session, on est tout le temps déconnecté !
Résultat, il va falloir écrire mon propre gestionnaire de session, qui refait exactement la même chose (et moins rapide que la version native de php), mais au moins je pourrais spécifier le dossier ! J’espère juste qu’ils n’auront pas désactivé cette fonction également…
Même problème. Je suis fou là. Je dirais même enragé
Et ben OVH m’a répondu :
vous pouvez passer par la fonction ini_set “session_save_path” pour enregistrer vos sessions dans le repertoire sessions de votre hebergement.
C’est nouveau ça, parceque j’avais testé au moment de la rédaction du billet, et il me semble pas que ça fonctionnait. Et par curiosité j’aimerais bien savoir pourquoi ils veulent qu’on passe par ini_set plutôt que session_save_path…
Voici ce qu’un technicien OVH m’a répondu:
Bonjour,
Désole pour ce retard.
Nous travaillons en clustering de notre coté, vous risquez de changer de serveur en cours de votre navigation donc vous perdez vos sessions.
vous pourrez remedier a cela en enregistrant les sessions dans le repertoire sessions de votre ftp en passant par la fonction ‘ini_set” et “save path session”
Cordialement, Mohamed
J’ai testé et cela ne fonctionne tout simplement pas.
Je supporte a 100% ton point de vue.
Quand on commence a voir faire des choses un temps soit peu élaboré et bien il fo bidouiller sur ovh…
C’est navrant…
je viens de tomber sur cette page en recherchant justement des echo concernant le stockage des sessions avec ovh. Je confirme, en médiaplan ovh, ca ne fonctionne ni par ini_set ni par sessions_save_path.
On est toujours dans le tmp avec tous les problèmes que ca comporte… Au moins grâce à cette page, je suis fixé. Le gestionnaire personnaisé s’impose :(
Je confirme les dificultés sur OVH.
Je développe mon site en local et stocke des données de session sur l’utilisateur (nom, prenom, role, estconnecte).
Tout marche sur mon site, les données restent les mêmes de page en page;
Sur OVH, lorsque j’essaie d’insèrer un nouvelle utilisateur en base, mes variables de session de prenom et de role sont écrasées par les valeurs postées dans le formulaire mais pas le nom.
Bizarre. Ce n’est pas faute d’avoir relu le code, et m’être assurée qu’il n’y avait pas:
-de POST caché
-de valuation de mes variables $_SESSION
-avoir relu les codes inclus
Bonjour,
A l’heure actuelle, je suis aussi sous mutualisé chez OVH, et j’ai créé un dossier “sessions” dans mon dossier www.
J’ai utilisé
session_save_path (‘sessions/’);
avant mon session_start, tout fonctionne chez moi, j’ai bien un fichier de session dans mon dossier.
Cependant un problème à un autre niveau, c’est l’utilisation des variables de session.
Bizarrement un truc comme :
$_SESSION['test']=’voici un test’;
sur une autre page avec les sessions initialisées :
echo $_SESSION['test']; //renvoi rien
Là je comprends pas… bref, soit il y a un truc spécial pour OVH, soit… soit je vois pas XD
++
Bonjour,
J’ai eu les mêmes problèmes que vous, c’est absolument scandaleux.
Je les ai résolus en créant un répertoire “sessions” à la racine de mon site.
Puis en remplaçant session_start par
define(“_PATH_TMP”, “sessions”);
ini_set(‘session.save_path’, _PATH_TMP);
session_start();
Ca marche, mais soyons prudent avec OVH…
Merci pour ces renseignements, je suis actuellement aussi confronter à ce problème.
Je vais donc utiliser la même technique que Phillipe
Merci à Philippe, la solution donnée a l’air de fonctionner.
Maintenant, je cherche une solution pour la fonction
header(“location:mapage.php”); elle n’est pas supportée pour
toutes les pages du site.
Heureusement qu’il y a une solidarité chez les internautes.
Merci
Enrique
Bonjour, j’ai eu une solution pour la fonction header qui n’est pas
supportée par OVH voici la solution qu’un internaute m’a donné
J’ai eu le même problème qui m’a cassé la tête pendant plusieurs jours.
Remplace le header(‘Location: mapage.php’);
par die(”);
GrosLolo.
Merci à GrosLolo
J’espère que cela profitera à quelqu’un
Enrique
normal aprenez a developper et vous verrai sa marche
Petite précision importante sur le sujet car j’ai eu le même problème de session chez ovh.
Le dossier de “sessions” doit avoir les permissions paramétrées sur chmod 705. Surtout pas 777. Sinon ça ne marche pas.
En résumé:
- créer un dossier “sessions” à la racine du site avec chmod 705
- mettre dans vos pages le code:
define(“_PATH_TMP”, “sessions”);
ini_set(’session.save_path’, _PATH_TMP);
session_start();
Chez moi, ça marche… après une longue recherche !