Problème avec exec, system, shell-exec

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 : Problème avec exec, system, shell-exec

par zigz4g » 24 juin 2008, 13:47

http://fr2.php.net/manual/fr/function.exec.php
Perso, je pense que ton script est trop court même si cela parrait suffisant.
Voici le minimun que je ferais :
<?php
if (($ret = exec('/bin/sh /home/perso/monscript.sh')) == '0') {
    echo 'Tout ce passe bien.';
}
else {
    echo 'Il y a une erreur (code ' . $ret . ')';
}
?>
Je ferais la vérification de la valeur de retour pour savoir quand il y a un problème et permet de faire
des logs.

Pour ton code de retour (127), ce doit être le code retour de ta dernière instruction si il arrive a
trouver le script. Pour le shell 'sh', php doit le trouver grace au PATH mais pour ton script, je n'en
suis pas sur.

par DoDo » 24 juin 2008, 13:13

Alors voici un bout de mon code (même si celà ne sert a rien car il n'y a pas plus):
- exec('sh script.sh');

Le code de retour est 127, est-ce qu'il y a un endroit ou on peut voir à quoi il correspond, car je n'est pas réussi à trouver ...

Les droits d'exécution sont bon :s

Merci quand pour votre aide ...

par zigz4g » 24 juin 2008, 11:54

Un petit bout de ton code aurait ete bien pratique. Sans savoir ce que tu fais,
verifie les valeurs de retour des fonctions exec, system, etc...
Verifie aussi que tu a les droits d'execution sur ton script shell pour l'utilisateur du serveur
Apache (je suppose sous Linux mais pas sur).

Problème avec exec, system, shell-exec

par DoDo » 24 juin 2008, 10:17

Bonjour,

j'ai une page PHP qui doit appeler un script shell sur mon serveur linux, cependant lorsque j'appel le script avec les commandes exec, system ou shell-exec il ne se lance pas.

Pourtant, j'ai modifié dans le fichier php.ini la commande safe_mode = on et et j'ai aussi régler le safe_mode_exec_dir ...

Est-ce qu'il est possible que j'ai oublié un réglage?

Je précise que mon script shell fonctionne parfaitement si je l'appel en ligne de commande.

Je vous remercie d'avance pour vos réponse!