Les Allergies
Alimentaires
Posez votre question Signaler

Variables d'environnement du shell à PHP [Résolu]

doc_mathieu - Dernière réponse le 7 nov. 2008 à 09:29
Bonjour a tous
J'ai un gros problème et je suis incapable de le résoudre depuis deux jours :
J'ai deux serveurs, un debian sarges et un debian etch.
Le sarge fonctionne correctement
Dans mon phpinfo() j'ai les 3 variables d'environnement suivantes :
_ENV["MYSQL_USER"]
_ENV["MYSQL_SERVER"]
_ENV["MYSQL_PASSWD"]
Sur le etch, je n'ai pas ces variables d'environnement.
J'ai donc essayé de les créer (^m si c'est de la bidouille) avec ce script :
putenv("GETRANET_DEBUG=1");
putenv("MYSQL_USER=getraclient");
putenv("MYSQL_SERVER=localhost");
putenv("MYSQL_PASSWD=(so:dw!x-fp!:e");

$_ENV['GETRANET_DEBUG']=getenv('GETRANET_DEBUG');
$_ENV['MYSQL_USER']=getenv('MYSQL_USER');
$_ENV['MYSQL_SERVER']=getenv('MYSQL_SERVER');
$_ENV['MYSQL_PASSWD']=getenv('MYSQL_PASSWD');

Du coup mon phpinfo() m'indique les 3 variables super ! Sauf que des que le script se termine les variables disparaissent, elles ne sont pas permanentes.
Je ne comprends pas, pour l'installation du serveur sarge je n'ai pas eu de prob, je pense que ces 3 variables ont été installées directement. Il semble que soit etch fonctionne différemment soit il faut installer un module que je ne connais pas.
Actuellement voici ce que j'ai d'installé :
- Libapache2-mod-php4
- Php4-cgi
- Php4-cli
- Php4-common
- Php4-mysql
Les variables d'environnement php sont faites à partir des informations prises dans les variables d'environnement du shell. Le problème c'est que je ne trouve rien avec "set". Je voudrais trouver un moyen de rendre ces variables permanentes.
Je suis sur qu'il est possible d'ajouter des variables d'environnement dans la configuration de PHP mais je ne sais pas comment faire.
Avez-vous des idées pour me sortir de ce bourbier ?
Lire la suite 

Variables d'environnement du shell à PHP »

13 réponses
Réponse
+0
moins plus
Bonjour,

Tout me parait normal...

Les deux distrib doivent bien fonctionner, mais les variables $_ENV sont, comme leurs nom l'indique, des variables d'environnement, ce qui veut dire qu'elles étaient dans l'environnement de l'utilisateur qui a lancé apache quand il a lancé apache :-)

Pour rajouter une variable:
$ export MA_VAR=valeur
$ apachectl stop
$ apachectl start


Ce qui doit différer entre les deux distrib, c'est le profil de l'utilisateur qui lance le serveur apache (fichier /etc/profile, ~/.profile ~/.bashrc, etc.)

A plus
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour et merci de te pencher sur mon problème

le truc c'est que

$ export MA_VAR=valeur
$ apachectl stop
$ apachectl start

ne fonctionne pas puisque php ne considère pas cette variable comme une variable d'environnement php.
J'y ai bien accès depuis le shell : echo $MA_VAR retourne bien valeur mais dans mon php, avec phpinfo() je n'ai pas accès à la variable.

(avec un "export" depuis le serveur fonctionnel je n'ai pas de trace de MYSQL_USER ou MYSQL_SERVER)

Sinon j'ai regardé /etc/profile, ~/.profile ~/.bashrc sur les deux serveurs tout est identique

et apache a été redémarré depuis root sur les deux...

qu'en dis-tu ?
asevere- 6 nov. 2008 à 16:46
Ok , il fallait commencer par là...

Pour apache2, apachectl => apache2ctl (which apache2ctl)

Par defaut, c'est dans /usr/sbin/ et par defaut, il inclus un fichier qui est: /etc/apache2/envvars

Du coup, j'ai un doute, as-tu bien relancé apache2 après tes modification (stop puis start) as tu regarder les fichier profile, bashrc de l'utilisateur root? (si tu passe par /etc/init.d, ça doit être root qui le lance...)
doc_mathieu - 7 nov. 2008 à 09:24
salut asevere

alors j'ai jetté un oeil a /etc/apache2/envvars, il est vide mais c'est pas grave car tu m'as donné la solution juste avant.

dans le fichier de lancement apache2 (etc/init.d/apache2), j'ai trouvé cette ligne :

ENV='env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin'

Je n'ai eu qu'à ajouter mes variables dans cette ligne et voila.

J'aimerai mettre résolu mais je suis en anonyme c'est possible ?

merci bcp pour ton aide
asevere- 7 nov. 2008 à 09:29
Cool,

J'aimerai mettre résolu mais je suis en anonyme c'est possible ?
Si tu as demander les réponse par mail, il me semble que oui, mais je viens de le faire à l'instant

merci bcp pour ton aide
De rien doc_mathieu

A plus
Ajouter un commentaire
Ce document intitulé « variables d'environnement du shell à PHP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?