Problème de session avec linux - Installation - Linux et OS Alternatifs
Marsh Posté le 17-10-2007 à 16:54:15
j'adore ce genre de message où l'on ne donne pas le contexte et où l'on doit tout deviner
Tu as ce genre de message avec quelle application ? au niveau du login avant d'accéder à une session graphique ?
Marsh Posté le 17-10-2007 à 16:57:43
Session c'est un peu vague... tu essaies de faire quoi ? De te logger via ssh sur un serveur distant ? D'acceder à une page sur un serveur web via un navigateur ?
Marsh Posté le 17-10-2007 à 17:46:48
Mes scripts utilisant les variables de session posent problème avec le passage en Linux ils ne fonctionnement correctement que sous FreeBSD.
Le pire c'est que le fonctionnement est très aléatoire, il faut réactualiser plusieurs fois la pase et parfois les variables $_SESSION sont lues mais pas toujours, bref "la galère"
Marsh Posté le 17-10-2007 à 17:53:29
Tu comptes nous donner les éléments au compte goutte ?
Marsh Posté le 17-10-2007 à 17:56:18
L'identification se fait d'une façon aléatoire, client, ou administrateur.
Marsh Posté le 17-10-2007 à 18:05:53
on est pas devins : précise
c'est un serveur web ? avec du php ? qui fait le café ? déca ou expresso ?
si tu donnes pas de détails (sur les versions des différents composants toussa) on risque pas de t'aider...
Marsh Posté le 17-10-2007 à 18:22:15
Merci de vos réponses,
Je suis hébergé chez Amen (serveur claranet) et Amen change sont système d'exploitation de FreeBSD => Linux et j'ai découvert le problème en phase d'essais.Leurs réponses au problème est de mettre cause mon script, le script fonction déjà parfaitement sur un autre serveur Linux.
Marsh Posté le 17-10-2007 à 18:25:28
ok donc serveur web a priori. Si c'est du php et que ça passe pas de linux à freebsd tu as 2 solutions : soit le code est super pourri, soit il y a une erreur dans la conf du serveur, par exemple un problème de droits avec le répertoire des sessions (ou même son existence). Là je dirais que c'est le php.ini qu'il faut modifier (surement /usr/local/etc/php.ini sur un freebsd)
Marsh Posté le 17-10-2007 à 18:36:45
Le passage de Freebsd vers Linux. En Freebsd tout fonctionne.
Marsh Posté le 17-10-2007 à 18:39:27
le fichier php.ini doit se situer dans un répertoire style /etc/php/... Ca dépend de ta distribution.
Pour plus d'info : http://fr3.php.net/manual/fr/ref.session.php
Marsh Posté le 18-10-2007 à 11:22:58
Bonjour,
Merci de vos informations, j’ai récupéré le fichier php.ini que je trouve correct je joins la partie session si vous trouvez des anomalies ?
PHP Version 4.4.2-90claranet
session
Session Support enabled
Registered save handlers files user
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php4 /var/lib/php4
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
Cordialement
Marsh Posté le 18-10-2007 à 11:26:23
o'gure a écrit : le fichier php.ini doit se situer dans un répertoire style /etc/php/... Ca dépend de ta distribution. |
session.auto_start on |
?
Marsh Posté le 18-10-2007 à 13:06:55
Il faut que tu regardes les différences au niveau phpinfo() entre un serveur bsd qui fonctionne et un serveur linux qui foire. Il faudrait aussi que tu nous montres le code d'initiatilisation de tes sessions, savoir si la base sql avec tes utilisateurs n'a pas changé de forme (encodage ?) pendant la migration, savoir pour ce message : "Votre serveur n'instancie pas les sessions sur votre serveur " Tu le sors d'où ? C'est un message venant du serveur (en francais ?) ou d'une gestion des erreurs par ton script ?
Bref il faudrait que tu nous aides en nous disant ce que tu sais :|
Marsh Posté le 18-10-2007 à 16:52:38
Voici ce que j'ai pu voir comme différence dans la section [sessions]
Dans la partie sessions de FreeBSD qui fonctionne
session.save_path /tmp /tmp
******************************************************
Dans la partie sessions de Linux qui ne fonctionne pas
session.save_path /var/lib/php4 /var/lib/php4
******************************************************
Voici le code d'initiatilisation des sessions
session_start();
session_register("SESSION" );
/* Ouverture de l'objet mysql */
$db_host = $serveur_mysql;
$db_username = $utilisateur_mysql;
$db_password = $mot_de_passe_mysql;
$db_name = $nom_de_la_base;
$db_prefixe = "chocolat";
$db = new DBLayer($db_host, $db_username, $db_password, $db_name, $db_password);
// Initialisation de SESSION si nécessaire
if (! isset($_SESSION)) { $_SESSION = array();}
// Initialisation de l'objet caddie si nécessaire
if (! isset($_SESSION['caddie'])) {
$_SESSION['caddie'] = new Caddie;
}
include($dirroot."/mysql.inc.php" );
// Initialisation de SESSION pour la couleur
if (! empty($_GET['style']))
{ $_SESSION['style'] = $_GET['style'];
} elseif
(empty($_SESSION['style']))
{ $_SESSION['style'] = "bleu";
}
// Recherche de la feuille de style
$stylefile = $wwwroot."/lib/css/".$_SESSION['style'].".css";
// Déclaration des fonctions
$fonctionsfile = $dirroot."/lib/fonctions/fonctions.php";
if (file_exists($fonctionsfile)){
require ($fonctionsfile);
}
}
Marsh Posté le 18-10-2007 à 17:21:37
Les sessions sont sauvées dans /var/lib/php4 ? C'est normal ? Le repertoire est accessible au compte apache en ecriture ?
Marsh Posté le 18-10-2007 à 18:45:58
Merci de votre aide, j’abandonne je vais faire une redirection et changerais d’hébergeur.
Cordialement
Marsh Posté le 17-10-2007 à 16:51:42
Bonjour,
Pourriez-vous me dire que signifie cette phrase pour un novice.
Votre serveur n'instancie pas les sessions sur votre serveur
Il est mal paramétré => cela ne peut pas marcher
Et de quelle façon peut-on corriger le paramétrage
Cordialement