Page 1 sur 1
variables d'environnement php innaccessibles
Posté : 04 nov. 2008, 13:22
par doc_mathieu
Bonjour
Mon serveur est sous debian
J'accède comme ca : https://(...)/test.php
<?
echo "1- ".$_ENV['MYSQL_SERVER'];
echo "2- ".$_ENV['MYSQL_USER'];
echo "3- ".$_ENV['MYSQL_PASSWD'];
?>
Réponse : "1- 2- 3- "
J'en déduis qu'une configuration quelque part permet d'activer les variables d'environnement PHP mais impossible de mettre la main dessus.
avez-vous une idée ?
Posté : 04 nov. 2008, 14:07
par orgerix
Je dirais plutot que ce sont les variables $_ENV['MYSQL_SERVER'],$_ENV['MYSQL_USER'] et $_ENV['MYSQL_PASSWD'] qui ne sont pas définies. Chez moi, quand je fais print_r($_ENV), j'obtiens juste des informations sur l'ordinateur sur lequel PHP tourne.
Il me semble qu'il est possible de définir des variables, par des lignes de commande. Mais bon, je suis pas un expert la dedans.
Posté : 04 nov. 2008, 15:55
par doc_mathieu
Merci orgerix d'avoir répondu.
Oui effectivement ces variables ne sont pas définies et j'aimerais qu'elles le soient. Ce sont des variables d'environnement qui effectivement donnent des informations sur le serveur.
Je suppose qu'une option dans php.ini doit être à l'origine du problème mais je n'ai toujours pas de piste.
Je galere ...
Posté : 04 nov. 2008, 17:15
par orgerix
Non, c'est pas au niveau du php.ini qu'il faut agir, il faut créer ces variables via le shell. Je sais pas trop comment on fait sur Linux, mais ca doit pouvoir être possible.
Posté : 04 nov. 2008, 17:26
par Invité
Le truc c que j'ai deux machines sous debian, l'une interprète correctement le php l'autre non, et les deux ont les mêmes variables globales (affichées avec "set")
Donc je ne pense pas que ça vienne de la
mais merci de ton aide, d'autres suggestions ?
Posté : 05 nov. 2008, 11:15
par doc_mathieu
bon alors voila ya du neuf :
Le truc c'est que j'ai deux serveurs.
1) L'un marche et interprete correctement
2) L'autre non
voila le php pour les deux machines
echo "<pre>";
print_r($_ENV);
echo "</pre>";
réponse du 1)
Array
(
[GETRANET_DEBUG] => 1
[LC_ALL] => fr_FR.ISO-8859-1
[PATH] => /usr/local/bin:/usr/bin:/bin
[PWD] => /
[LANG] => fr_FR.ISO-8859-1
[SHLVL] => 1
[MYSQL_USER] => *******
[MYSQL_SERVER] => localhost
[MYSQL_PASSWD] => *******
[_] => /usr/sbin/apache2
)
Reponse du 2)
Array
(
[PATH] => /usr/local/bin:/usr/bin:/bin
[PWD] => /
[LANG] => C
[SHLVL] => 1
[_] => /usr/sbin/apache2
)
comment puis-je renseigner les variables
[MYSQL_USER]
[MYSQL_SERVER]
[MYSQL_PASSWD]
sur le 2) depuis mon shell ?
Posté : 05 nov. 2008, 14:26
par orgerix
Tu n'as rien installé sur le serveur 1 ?
Sinon, je crois que la commande pour créer les variables d'environnement est set nomvariable=valeur
Mais bon, je suis pas sur non plus.
Posté : 06 nov. 2008, 15:56
par Invité
ouaip c bien ca effectivement mais toutes les variables du shell ne passent pas en variable d'environnement php.
Je vais réouvrir un sujet avec plus d'explications
Posté : 07 nov. 2008, 10:47
par Truc
Posté : 07 nov. 2008, 11:12
par doc_mathieu
sakut HyWaN
Merci d'avoir pris tout ce tps pour me sortir de la galere.
alors voila déjà de mon coté php -a ne marche pas, pas top.
après j'ai fait des export de variables et je ne les retrouve pas dans le phpinfo() donc inaccessible depuis les php.
En revanche a force de remplir les forum, j'ai fini par trouver une solution :
le fichier /etc/init.d/apache2 contient cette ligne :
ENV='env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin'
J'ai ajouter mes variables et hop, j'y ai accès depuis phpinfo, alors qu'elles ne sont pas affichées quand je fais un "export" ou un "set"
Bref l'essentiel c'est que ça marche, par contre oui tu as tout a fais raison sur la sécurité c'est carrément pas top
merci également a tous les autres participants
[résolu] variables d'environnement shell + php
Posté : 07 nov. 2008, 11:26
par doc_mathieu
c'est résolu mais je ne sais pas comment le mettre, je tente en ajoutant un sujet a la reponse...
Posté : 07 nov. 2008, 12:59
par Truc
l'anti-spam qui empêche de reposter avant un certain laps de temps...
Devrait être bon maintenant.
Marci