Page 1 sur 1

Changer le $PATH à partir d'un script PHP

Posté : 07 mars 2013, 16:41
par Breathe
Bonjour à tous,

J'écris un script qui tourne sur un serveur LINUX. Ce script fait des appels à un programme installé sur le serveur grâce à la fonction exect(). Seulement pour que le programme fonctionne correctement il est nécessaire de rajouter des dossier dans la variable d’environnement $PATH de LINUX. J'arrive à modifier mon $PATH dans le terminal grâce à la commande export mais cela n'affecte pas le script. Donc ma question est la suivante : Comment ajouter des directories à la variable $PATH de LINUX à partir d'un script PHP.

Merci par avance pour votre aide.

Bonne journée :)

Re: Changer le $PATH à partir d'un script PHP

Posté : 07 mars 2013, 17:17
par yann18
bonjour,
est-ce que le chemin vers ton script shell a bien été pris en compte par le PATH?
un "echo $PATH" sur ton terminal t'en dira si le chemin a été ou non pris en compte.

une autre alternative est d'utiliser un alias vers ton script
ex:
soit toto.sh ton script shell situé dans /home/mes-scripts/

dans le .bashrc tu peux définir un alias vers le script toto.sh comme suit:

Code : Tout sélectionner

#.bashrc alias script='sh /home/mes-scripts/toto.sh'


le script toto.sh peut être appelé partout par script

Re: Changer le $PATH à partir d'un script PHP

Posté : 07 mars 2013, 17:24
par Breathe
En fait le soucis vient du fait que lors que je modifie le $PATH avec la console, le $PATH est modifier pour moi en tant qu'utilisateur, mais lorsque le script PHP est exécuté il fait appel au $PATH en tant qu'utilisateur apache.apache donc son $PATH à lui n'est pas modifié.

La bonne solution serait d'arriver à modifier le $PATH de "l'utilisateur" apache.apache puisque c'est lui qui exécute le script php donc je ne sais pas s'il existe une fonction qui m'aiderait à faire cela.
Suis-je clair ? :?

De plus je n'ai pas parlé de script shell, c'est un script PHP qui fait appel à un fichier binaire et pour que l’exécution de ce fichier binaire se passe convenablement il faut apporter des modification au $PATH

Re: Changer le $PATH à partir d'un script PHP

Posté : 07 mars 2013, 18:06
par xTG
La solution la plus simple et sans prise de tête : Un script shell qui fait ton export puis qui lance ton binaire ?
Sinon se logguer sur le compte apache et effectuer la manipulation décrite plus haut par yann18.

Re: Changer le $PATH à partir d'un script PHP

Posté : 07 mars 2013, 18:13
par yann18
il faut définir une variable d’environnement apache (avec apache_setenv..() ) qui initialise le chemin puis faire appel à cette variable d’environnement par la fonction apache getenv:

apache_setenv("APP","/home/yann/",true);//définition de la valeur de la variable APP

//appel à la variable d'enronnement APP:
$chemin=apache_getenv("APP");
$e=passthru("sh $cheminp/sc.sh",$a);
print_r(print_r($a);

Re: Changer le $PATH à partir d'un script PHP

Posté : 10 mars 2013, 18:13
par yann18
Il n y avait pas besoin de configurer une variable d'environnement apache pour exécuter un script shell se trouvant hors de la racine du serveur web. En lisant le manuel je viens de tomber sur la fonction shell-exec.