Changer le $PATH à partir d'un script PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Changer le $PATH à partir d'un script PHP

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

par yann18 » 10 mars 2013, 18:13

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.

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

par yann18 » 07 mars 2013, 18:13

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

par xTG » 07 mars 2013, 18:06

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

par Breathe » 07 mars 2013, 17:24

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

par yann18 » 07 mars 2013, 17:17

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

Changer le $PATH à partir d'un script PHP

par Breathe » 07 mars 2013, 16:41

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 :)