system(escapeshellcmd($bat)) & script bash - PHP - Programmation
Marsh Posté le 09-03-2005 à 13:24:57
Pensez vous que "proc_open" pourrait remplacer "escapeshellcmd"? help me please
Marsh Posté le 09-03-2005 à 14:33:30
je crois que personne, moi le premier, a compris ton probleme malheureusement et je peux pas t'aider dsl
bonne chance quand meme
Marsh Posté le 09-03-2005 à 16:00:57
moi j'ai compris, et j'avais le meme probleme que toi pour lancer et arreter des services sur win32.
j'arrivais bien a les arreter, mais impossible de les lancer..
j'ai jamais trouvé pourquoi...
desolé
Marsh Posté le 09-03-2005 à 18:22:30
et la fonction system te renvoit quoi ?
sinon ya des traces dans les log ?
Marsh Posté le 09-03-2005 à 18:43:17
la fonction systeme ne me renvoie rien à prioris, quand aux logs situés dans /var/log et /var/log je n'ai rien vus concernat les bash, screen ou systeme. Les logs apaches eux n'ont rien de spécial non plus a part un petit pbl d'alias sur les icones.
Marsh Posté le 09-03-2005 à 18:57:28
J'aimerai bien ... mais j'ai fait un chown apache:grp1 -R /data/log/log1/ avec un chmod en 770, apache est lancé en tant que apache:grp1 lui aussi ... je pense pas que ca vienne de la ... ?
Marsh Posté le 09-03-2005 à 19:00:09
J'ai bien une sortie system sur ma page web qui me dit que j'ai tué mon screen (lancé a la main) avec le stop.sh quand je fait l'action stop mais nada pour l'action start ... alors que le script marche nickel sur le systeme
Marsh Posté le 10-03-2005 à 16:02:38
le script marche tres bien en local , je fait un su apache (autre nom d'user en vrai mais pour l'exemple j'ai pris apache) et puis je fait un start.sh et tout se lance correctement.
Le probleme viens ... bah justement d'ou?
Moi je pensais à une librairie php ou un module apache à installer qui autoriserait apache et/ou php à lancer des programmes sur mon serveur ... ?
Marsh Posté le 10-03-2005 à 17:25:01
c'est comme même bizarre qu'il n'y ai aucune trace ni sortie, essaye de faire un truc dans le genre :
Code :
|
regarde la valeur de $status et les logs (/var/log/messages et les log d'erreurs apache&php)
sinon regarde les notes sur http://fr.php.net/system, ya des choses qui pourrait t'aider.
Marsh Posté le 10-03-2005 à 17:54:15
J'ai mis ton code et il me retourne ca :
Code :
|
*regarde son serveur et lui jette un oeil noir* Mouais ...
Bref ! meme si c'ets pas exlpicite ca veut dire que quelquechose se passe ... je me demandais si les mots "fork, processus parents et fils" allaient pas m'envahir la tete cette nuit ... en tout cas c'ets la premiere fois que j'ai un code erreur ... a ton avis ca correspond a quoi? un PID?
Marsh Posté le 10-03-2005 à 17:57:48
en poussant un peu plus le raisonnement je me dis que stop.sh marche car c'est une action instantanée et start ne marche peut etre pas car c'est un screen qui lance un processus pour une durée illimitée ... mais quelle est la différence entre la maniere de lancer via PHP et le lancement via ma console ... alors que c'est le meme user ...
Marsh Posté le 10-03-2005 à 19:13:26
J'ai trouvé ca:
Citation : |
Hors lorsque j'ai indiqué à ma variable $bat un faux chemin d'acces il m'a retourné le code 127 ... j'en deduit donc que ces trois fabuleux chifres (126) sont une tentative de communication entre la fonction escapeshellcmd et moi meme ... a moins que ce soit php! quelqun a il déja rencontré cette erreur?
Marsh Posté le 10-03-2005 à 19:24:32
Citation : 126 : command invoked cannot execute => permission problem or command is not an executable |
donc essaye d'executer ta commande screen avec un su, un truc tu genre su -c command (je sais plus)
Marsh Posté le 10-03-2005 à 20:43:11
Je vais essayer mais l'utilisateur qui fait tourner apache (donc php) est le meme que celui utilisé sur mon terminal! J'essaye tout de meme avec root pour voir mais si ca marche c'est bricolage niveau sécurité ... enfin déja ca dépannera ! En tout cas merci pour ton soutien Soju! Des que j'ai un résultat je te tiens au courant
Marsh Posté le 10-03-2005 à 23:17:52
J'aimerai bien pouvoir le faire mais si je met la commande "su" dans le script php ne connaitra pas le pwd lors de l'execution du site par celui-ci ... :-/ De plus je suis convaincu qu'apache a les droits suffisants puiske cela marche avec cet user en local ...
Pour ce qui est des droits j'ai appliquer un chmod 777 a l'ensemble du dossier ou est l'appli en question .
J'ai étudié un peu plus le code php de l'interface web, je me suis apercu que celui-ci copie les fichiers sh indiqués dans la variable $bat dans un autre dossier de mon systeme avant de les executer ... donc dans mes scripts j'ai ajouté le chemin complet en me disant que c'était ca ( en tout cas dans le script start car il devait alors chercher l'executable dans le dossier reboot de mon systeme donc pas au bon endroit) .. mais non ca n'a rien changé ! bien sur les chmod et chown sontt ok pr apache
Marsh Posté le 09-03-2005 à 12:59:14
Bonjours à tous ,
Je suis actuellement en train de chercher un moyen de lancer correctement des programmes via la commande screen intégré à un batch, et ceci depuis une interface web.
J'ai donc un serveur apache 2.0 , et PHP/4.3.10 sous une fedora core 3 .
A l'heure actuelle je travaille avec comme aide cette page :
Sur toutes mes methodes proposées seule celle-ci:
arrive a me killer le creen en faisant appel dans la variable bat au script suivant:
la variable bat contiens suivant le cas le chemin d'acces /data/log/log1/start.sh ou /data/log/log1/stop.sh
Cette commande m'irait tres bien si seulement elle pouvait faire fonctionner ce script (start):
Je ne vois pas pkoi ca marche dans un sens et pas dans l'autre ?
Hum ... a tout hasard j'ai aussi essayé ca pour le script start.sh
et
Ca se lance en local mais toujours pas via mon interface web ... et par contre je peut l'arreter ... argh!
Merci par avance!