Php Shell executer programme

fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006 - 12 juil. 2006 à 09:37
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006 - 12 juil. 2006 à 15:21
Bonjour,

je souhaite executer un programme externe sous shell. J'avais l'habitude de juste mettre :
$filename=monprog.exe
exec ("$filename");

Mais je ne travaillais pas avec shell !!
lorsque je mets ça, rien ne se passe, mon programme n'est pas executer ???
On m'a parlé de csh, mais je ne sais pas comment le mettre, j'ai essayé mais ça ne fonctionne pas ??

Quelqu'un a t-il une idée?
Par avance Merci

14 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
12 juil. 2006 à 09:43
Utilise shell_exec
http://be.php.net/manual/en/function.shell-exec.php

verifie que ton programme ou script soit bien en execution pour 'apache' (ou 'www', bref, le user correspondant au serveur web)

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 09:51
voici ce que j'ai mis mais j'ai un warning !!

$cmd= 'csh';
shell_exec($cmd,$filename);

Warning: Wrong parameter count for shell_exec() in /pub/apache2/htdocs/sas/stat1sas.php on line 38
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
12 juil. 2006 à 09:59
fredo, je t'ai donné un lien qui explique la commande shell_exec
sur ce lien, on voit que cette fonction ne prend qu'un et un seul parametre
c'est quoi ces deux arguments ???

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 10:08
ben je croyais qu'il fallait mettre csh !!!!
je comprends rien j'arrive pas à executer mon programme !!!
j'ai essayé :

shell_exec($filename);

ou $filename est égal à mon programme ça marche pas !!!!
peut être que ça va t'aider si je mets ma page php??!!!

...
$sasexe= '"/prod/SAS_8.2/sas"';
$programme1= '"/local/users/dim/balusson/htsas/analyse_1_ghm_1_an.sas"';
$sysparm = "'". $an . " ". $cdghm . "'";
$date = date("dmYHi")*rand();
$filename = "/local/users/dim/balusson/htsas/depot/$date.bat";
$file_handle =fopen($filename, "w");
fwrite($file_handle, "$sasexe -sysparm $sysparm -sysin $programme1");




$cmd= 'csh';
shell_exec($filename);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
12 juil. 2006 à 10:29
j'ai du mal à comprendre.;
tu es sous windows ou sous linux ?
ton fichier  .bat c'est ton programme? l'utilisateur web a-t-il les droits d'execution sur ce programme ?

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 10:47
je suis sous windows et l'utilisateur à bien les droits !!! il ecrit bien dans le fichier .bat

mais il ne l'execute pas j'ai l'impression !!! je comprends plus rien !!!
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
12 juil. 2006 à 10:51
Re !
sorry, sous windows, je peux pas faire gd chose pour toi (meme si je ne suis pas sur qu'avoir les droits en ecriture = avoir les droits en execution).
sinon il se peut que le safe_mode soit activer sur ton erveur, ds ce cas la commande shell_execute ne fonctionne pas

si c'est ça essaie les autre commande (exec, execshellexecute,..)

-------------------------------------

Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 12:11
en gros, lorsque je tape en ligne de commande

csh essai.bat, il ne passe rien alors que lorsque je tape ce qui est écrit dans le fichier .bat en ligne de commande , il execute bien !!!
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
12 juil. 2006 à 14:22
pkoi tu parles de csh qui est un shell unix ???

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 14:27
oui en faite, j'ai pas tout compris en fait c'était via unix !!!! j'suis pas doué dans tous ça !!!
mais bon là mon programme fonctionne lorsque je fais cela :
$cmd= "/prod/SAS_8.2/sas -sysparm '$an $cdghm' -sysin '/local/users/dim/balusson/htsas/analyse_1_ghm_1_an.sas'";

shell_exec($cmd);

mais si je mets tous ça dans un fichier monfichier.bat (par exemple) et qu'ensuite je fais
$file=monfichier.bat;

shell_exec($file);
ça ne marche plus !!!
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
12 juil. 2006 à 14:37
bon maintenant c'est unix et plus windows..
je repete encore ma question: ton utilisateur web a-t-il les droits d'execution sur le script ?
de plus, de quel type de unix s'agit t-il ? un linux ?
que se passe t-il en ligne de commande dans un shell si tu fais ./monfichier.bat ?

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 14:40
si je fais ./monfichier.bat
il me dit permission refusé !!
0
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
12 juil. 2006 à 14:48
et bien voila, on en revient à ma toute premiere question: as tu les droits pour executer ce fchier, la réponse est non....

dans une console, tape 'chmod +x monfichier.bat'
tu dois egalement rajouter, dans ton script en premiere ligne, un '#!/bin/csh' si tu veux utiliser csh ou '#!/bin/bash' si tu veux utiliser un bash pour lancer ton script

de plus, on ne sait tjrs pas de quel unix (linux?) il s'agit.
Plus  vous donnerez des détails, moins on perdra de temps.

merci

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
fredo35m Messages postés 244 Date d'inscription jeudi 14 avril 2005 Statut Membre Dernière intervention 12 juillet 2006
12 juil. 2006 à 15:21
oui désolé, mais je ne m'y connais pas très bien dans tout ça !!!
0
Rejoignez-nous