Executer un BASH a partir d'un bouton

Executer un BASH a partir d'un bouton - PHP - Programmation

Marsh Posté le 20-04-2008 à 15:12:54    

Bonjour à tous,
 
Voila, je n'y connais rien en PHP, mais j'ai besoin de créé une page contenant 2 boutons pour lancer et arrêter un serveur de jeu depuis le net
 
J'ai essayé cà, mais ca ne fonctionne pas:
 
 
 
<?php
 
  function prog() {
    exec ('scontrol-monserveur-start.sh');
  }
 
?>
 
<input type="button" value="Lancer le serveur" OnClick="prog();">
 
 
<?php
 
  function prog1() {
    exec ('scontrol-monserveur-stop.sh');
  }
 
?>
 
<input type="button" value="Stopper le serveur" OnClick="prog1();">
 
 
 
 
Mais cela ne fonctionne pas.
 
Serait il possible d'avoir un peu d'aide.
 
Je vous remercie d'avance.
 
PS: je précise que j'essaie en PHP pour le mettre sur un serveur qui tourne sous "Linux server web Apache", je ne sais pas si ça a une incidence sur la programmation, mais je précise quand même.

Message cité 1 fois
Message édité par petitmr le 20-04-2008 à 15:23:28
Reply

Marsh Posté le 20-04-2008 à 15:12:54   

Reply

Marsh Posté le 20-04-2008 à 15:27:46    

[:pingouino]

 

Le php est exécuté sur le serveur. C'est tout ce que j'ai à dire.


Message édité par skeye le 20-04-2008 à 15:28:00

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 15:33:09    

c'est à dire?
 
Tout ce que je veux cest mettre une page codée en PHP sur le serveur, afin de pouvoir lancer mon serveur de jeu à distance


Message édité par petitmr le 20-04-2008 à 15:33:25
Reply

Marsh Posté le 20-04-2008 à 15:35:41    

Et moi tout ce que je te dis, c'est que php est exécuté par le serveur, et qu'un serveur n'a aucune idée de ce qu'est un clic dans le navigateur.
 
Partant de là, à toi de voir quel est le problème de ton code...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 15:39:55    

Ben sachant que j'y connais rien, je suis pas près de comprendre quel est le problème de mon code.


Message édité par petitmr le 20-04-2008 à 15:44:26
Reply

Marsh Posté le 20-04-2008 à 15:41:20    

Alors commence par apprendre un peu les bases?

 

onclick attend du javascript. ton navigateur n'a aucune idée de ce qu'il est censé faire quant tu cliques ton bouton, là.
Il faut que ton formulaire appelle une page php qui va faire ce qu'il faut sur le serveur.


Message édité par skeye le 20-04-2008 à 15:41:27

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 15:44:29    

Tout ce que je sais, c'est que j'ai 2 scripts .sh, l'un pour lancer le serveur, l'autre pour le stopper. Et j'aimerai pouvoir les exécuter à partir d'une page PHP.
 
Donc, si je te suis bien, soit j'oublie le PHP pour lancer mes scripts ou soit j'oublie le OnClick

Reply

Marsh Posté le 20-04-2008 à 15:45:23    

non, tu ne suis pas bien. mais tu oublies le onclick.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 15:48:25    

Apprendre le PHP ça ne m'intéresse même pas, je veux juste un peu d'aide de la part de quelqu'un qui m'explique ce que je dois faire pour que ca marche.
 
Je viens de passer 2h sur Google pour essayer de comprendre....

Reply

Marsh Posté le 20-04-2008 à 15:49:22    

Le problème c'est qu'ici on n'est pas là pour faire les choses à ta place.[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 15:49:22   

Reply

Marsh Posté le 20-04-2008 à 15:54:55    

Hého, tout ce que je demande c'est un coup de main.
CE qui est sûr c'est que pour le moment avec tes réponses je suis pas prêt d'avancer vu que je n'y comprends rien.

Reply

Marsh Posté le 20-04-2008 à 15:58:28    

Je ne t'ai rien dit de compliqué.[:skeye]
il faut que tes boutons appellent des pages php qui vont exécuter tes scripts bash. Rien de bien complexe à comprendre!


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 16:07:45    

Si je te suis bien, en faisant ça je suis sur la bonne voie:
 
 
 
 <HTML>
 <HEAD>
 <TITLE>Exemple</TITLE>
 </HEAD>
 
 <BODY>
 
 
 <*SCRIPT language="Javascript">
 
 <INPUT TYPE="button" Value="Lancer le serveur" onclick="window.location='mapagePHP1.php';">
 
 
 <INPUT TYPE="button" Value="Stopper le serveur" onclick="window.location='mapagePHP2.php';">
 
 
 </SCRIPT>
 
 
 
 </FORM>
 </BODY>
 </HTML>

Reply

Marsh Posté le 20-04-2008 à 16:09:42    

si on veut. Le javascript ne te sert à rien, il suffit d'un simple lien pour appeler une page php. Mais le principe est là.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 16:09:59    

après pour mapagePHP1.php
 
<?php
 
   exec ('scontrol-monserveur-start.sh');
 
?>
 
 
et pour mapagePHP2.php
 
<?php
 
   exec ('scontrol-monserveur-stop.sh');
 
?>
 
 
 
 
 
Le Javascript c'est pour avoir mes boutons


Message édité par petitmr le 20-04-2008 à 16:10:58
Reply

Marsh Posté le 20-04-2008 à 16:10:26    

voilà, en gros c'est ça.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 16:11:56    

en gros????
 
je vais testé, on va voir,
 
Merci de ton aide, je te tiens au courant

Reply

Marsh Posté le 20-04-2008 à 16:55:56    

voili voilou, je viens d'essayer et cela ne fonctionne pas. est ce que j'ai oublié quelques choses dans mes pages 1 et 2 ?

Reply

Marsh Posté le 20-04-2008 à 17:38:16    

Je crois surtout que tu essayes de faire quelque chose de completement impossible, on execute pas un script bash de n'importe ou et n'importe comment.

Reply

Marsh Posté le 20-04-2008 à 18:06:47    

petitmr a écrit :

voili voilou, je viens d'essayer et cela ne fonctionne pas. est ce que j'ai oublié quelques choses dans mes pages 1 et 2 ?


 
quelle est l'erreur?
 

masterpsx a écrit :

Je crois surtout que tu essayes de faire quelque chose de completement impossible, on execute pas un script bash de n'importe ou et n'importe comment.


mais bien sur que si c'est possible d'exécuter une commande sur le serveur.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 18:21:07    

Donc, j'ai bien ma page avec mes 2 boutons qui renvoyent chacun a une page contentant les scripts PHP pour lancer et stopper mon serveur.
 
J'ai fais exactement comme dans mon post précédent, sauf que quand je clique sur le bouton "Lancer le serveur" ben; il ne se lance pas.
j'ai pi etre une erreur dans mon script PHP:
 
après pour mapagePHP1.php
 
<?php
 
   exec ('scontrol-monserveur-start.sh');
 
?>  
 

Message cité 1 fois
Message édité par petitmr le 20-04-2008 à 18:25:25
Reply

Marsh Posté le 20-04-2008 à 18:42:27    


 

skeye a écrit :


mais bien sur que si c'est possible d'exécuter une commande sur le serveur.:o


J'ai pas dis que d'executer une commande est impossible, c'est ce qu'il veut faire qui ne l'est pas, tu crois une seconde qu'un serveur de jeu, un serveur apache et un script bash peut se trouver au même endroit ?

Reply

Marsh Posté le 20-04-2008 à 18:59:07    

petitmr a écrit :

Donc, j'ai bien ma page avec mes 2 boutons qui renvoyent chacun a une page contentant les scripts PHP pour lancer et stopper mon serveur.
 
J'ai fais exactement comme dans mon post précédent, sauf que quand je clique sur le bouton "Lancer le serveur" ben; il ne se lance pas.
j'ai pi etre une erreur dans mon script PHP:
 
après pour mapagePHP1.php
 
<?php
 
   exec ('scontrol-monserveur-start.sh');
 
?>  
 


 
il faut que tu récupères le résultat de la commande exec pour vérifier que tout se passe bien: http://fr2.php.net/manual/fr/function.exec.php . Ton script .sh est dans le même répertoire que ton fichier php?
 

masterpsx a écrit :


J'ai pas dis que d'executer une commande est impossible, c'est ce qu'il veut faire qui ne l'est pas, tu crois une seconde qu'un serveur de jeu, un serveur apache et un script bash peut se trouver au même endroit ?


 
sur le même serveur? oui.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 20:26:38    

skeye a écrit :


 
sur le même serveur? oui.


Un serveur de jeu ne s'installe dans Apache comme un vulgaire site web, ca peut pas être dans le même repertoire et il faut avoir les droits pour pouvoir executer un fichier. Tu ne sais même pas d'ou il essaye d'executer son script bash ni même ce qu'il contient ou encore si le site web est bien sur la même machine, c'est la 1er chose a verifier.

Reply

Marsh Posté le 20-04-2008 à 20:28:24    

masterpsx a écrit :


Un serveur de jeu ne s'installe dans Apache comme un vulgaire site web, ca peut pas être dans le même repertoire et il faut avoir les droits pour pouvoir executer un fichier. Tu ne sais même pas d'ou il essaye d'executer son script bash ni même ce qu'il contient ou encore si le site web est bien sur la même machine, c'est la 1er chose a verifier.


 
ok, merci pour les conseils captain obvious.
On va procéder par étapes si tu veux bien, il y connait rien.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-04-2008 à 21:19:29    

skeye a écrit :


 
ok, merci pour les conseils captain obvious.


T'est bien gentil mais ce genre de réflexion tu te les gardes, je suis pas ton pote.

Reply

Marsh Posté le 20-04-2008 à 22:29:45    

Le serveur web et serveur de jeu sont bien sur la même machine, et le script bash contient:  
 
screen -dms ./etded +set dedicated 2 +set fs_game etpub +set net_ip xxxx +set net_port xxxx +exec server.cfg
 
ensuite  les fichiers php ne sont pas sur le même emplacement que les fichiers serveur, c'est à dire qu'au lieu d'avoir le site dans /var/www/  ,  j'ai un lien qui pointe vers /home/utilisateur/site/   et mes fichiers php sont là avec ceux du site web.
 
 
 

Message cité 1 fois
Message édité par petitmr le 20-04-2008 à 22:33:09
Reply

Marsh Posté le 21-04-2008 à 01:21:14    

petitmr a écrit :

Le serveur web et serveur de jeu sont bien sur la même machine, et le script bash contient:  
 
screen -dms ./etded +set dedicated 2 +set fs_game etpub +set net_ip xxxx +set net_port xxxx +exec server.cfg
 
ensuite  les fichiers php ne sont pas sur le même emplacement que les fichiers serveur, c'est à dire qu'au lieu d'avoir le site dans /var/www/  ,  j'ai un lien qui pointe vers /home/utilisateur/site/   et mes fichiers php sont là avec ceux du site web.
 
 
 


 
alors dans ton fichier php tu dois donner le chemin absolu vers tes fichiers bash.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-04-2008 à 01:24:54    

masterpsx a écrit :

T'est bien gentil mais ce genre de réflexion tu te les gardes, je suis pas ton pote.


Alors garde tes "c'est impossible" ridicules pour toi aussi. Ou bien explique-lui aussi ce qui ne va pas ou pourrait ne pas aller.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-04-2008 à 10:53:09    

skeye a écrit :


Alors garde tes "c'est impossible" ridicules pour toi aussi. Ou bien explique-lui aussi ce qui ne va pas ou pourrait ne pas aller.


A la base ma réponse ne te concerne pas que je sache, tu te prend pour qui, je t'ai demandé ton avis peut être ? Je ne t'ai pas insulté ni manqué de respect alors merci de faire de même.
 
Quand a ce qui vas pas, c'est évident non et n'a rien avoir avec son script PHP, soit il a copié son bash dans son repertoire web avec ses fichiers PHP soit il essaye de le lancer juste en mettant son nom alors qu'il n'est même pas au même endroit, dans les 2 cas il peut toujours essayer longtemps. Je suis loin d'être un spécialiste serveur mais de ma petite experience, je crois savoir qu'il y a aussi des droits d'utilisateurs. Ce qu'il a essayé de faire est impossible, je le maintient, c'est pas aussi simple et il y a des configurations à vérifier, des path a connaitre ect...
 
Bref tout ceci ne concerne pas vraiment PHP et aurait plus sa place dans "réseaux et sécurité"  mais libre à toi de résoudre son prôblème.
     
 
 

Reply

Marsh Posté le 21-04-2008 à 11:01:03    

masterpsx a écrit :


A la base ma réponse ne te concerne pas que je sache


dans la mesure où tu me contredis en me prenant pour une tache, plus ou moins, si.
 
 

masterpsx a écrit :

Quand a ce qui vas pas, c'est évident non


 
Justement, pour lui non, il a déjà dit plusieurs fois qu'il était débutant.
 
 

masterpsx a écrit :


 et n'a rien avoir avec son script PHP, soit il a copié son bash dans son repertoire web avec ses fichiers PHP soit il essaye de le lancer juste en mettant son nom alors qu'il n'est même pas au même endroit, dans les 2 cas il peut toujours essayer longtemps. Je suis loin d'être un spécialiste serveur mais de ma petite experience, je crois savoir qu'il y a aussi des droits d'utilisateurs.


 
Bien sur qu'il faut prendre en compte tout ça, mais il fallait commencer par lui faire comprendre comment ça pouvait se passer, avant de rentrer dans les détails. Si tu lui annonces tout ça d'entrée alors qu'il ne fait pas la distinction entre code serveur et client tu n'arriveras jamais à lui faire réussir son programme.
 

masterpsx a écrit :

Ce qu'il a essayé de faire est impossible, je le maintient


 
Non, non et non, ce n'est pas impossible, si tu le soutiens c'est toi qui n'y connais rien et tu ferais mieux d'aller voir ailleurs si des gens on besoin de t'entendre leur raconter des conneries. Ce qu'il a fait jusqu'ici est naïf, bien entendu, mais en prenant les problèmes un par un il arrivera à une solution. Il n'y a aucune raison que ce ne soit pas faisable.
 
 

masterpsx a écrit :

Bref tout ceci ne concerne pas vraiment PHP et aurait plus sa place dans "réseaux et sécurité"  mais libre à toi de résoudre son prôblème.


 
C'est à 100% du php - la partie spécifique "exécution de commandes serveur" de php, oui, mais ses problèmes sont intégralement liés à php, pas à autre chose.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-04-2008 à 11:08:49    

Problème:

petitmr a écrit :

J'ai essayé cà, mais ca ne fonctionne pas:


 
Origine du problème:

petitmr a écrit :

Voila, je n'y connais rien en PHP


 
Solution au problème:
Apprends le PHP.
 
Moi quand j'achète une machine à laver, une perceuse, un four, une console de jeu, un appareil photo, un meuble IKEA ou un jeu de société, je commence par lire le manuel pour comprendre comment ça marche. Un langage de programmation c'est pareil, c'est pas un machin qu'on bidouille un peu au pif et qui marche miraculeusement hein [:moule_bite]


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
Reply

Marsh Posté le 21-04-2008 à 11:09:50    

masterpsx a écrit :


T'est bien gentil mais ce genre de réflexion tu te les gardes, je suis pas ton pote.


 
VAZY DOU TU ME JUGE JTE CONNAI PAS ZYVA BATAR /§§
 
 
olol


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
Reply

Marsh Posté le 21-04-2008 à 12:02:46    

skeye a écrit :


dans la mesure où tu me contredis en me prenant pour une tache, plus ou moins, si.


Je ne t'ai jamais contredis, son script était faux et tu l'aides a le corriger, j'ai jamais dis le contraire ou que tu avais tord. Je pense simplement que c'est pas le php le problème, j'ai le droit d'avoir un avis différent du tiens non ? Mon 1er message s'adressait uniquement à lui et n'avait aucun lien avec tes réponses, c'est toi derriére qui me contredis, si quelqu'un a essayé de faire passer l'autre pour un con c'est bien toi.

skeye a écrit :


Non, non et non, ce n'est pas impossible, si tu le soutiens c'est toi qui n'y connais rien et tu ferais mieux d'aller voir ailleurs si des gens on besoin de t'entendre leur raconter des conneries. Ce qu'il a fait jusqu'ici est naïf, bien entendu, mais en prenant les problèmes un par un il arrivera à une solution. Il n'y a aucune raison que ce ne soit pas faisable.


Ce que tu n'arrives pas a comprendre c'est que je ne dis pas que lancer/fermer un serveur de jeux via un espace web sur la même machine est impossible, c'est la façon dont il s'y est pris qui n'a aucune chance de fonctioner. Maintenant si tu as la patience et le temps de lui expliquer tout, vas-y et amuses toi bien.
 
 
Bref, je vais pas polémiquer avec toi, tu est surement beaucoup plus qualifié que moi et bien plus intelligent, j'essaye avec mes modestes connaissances d'aider un peu. Je te demande juste d'eviter les reflexions désobligeante avec moi, tu n'as qu'a simplement m'ignorer comme je compte le faire avec toi.

Reply

Marsh Posté le 21-04-2008 à 12:06:06    

masterpsx a écrit :

Je ne t'ai jamais contredis


 
en disant que c'est impossible sans plus de précisions, si. Enfin bref, si tu ne sais pas faire la distinction entre "c'est impossible" et "ton programme est incorrect" je ne peux pas grand chose pour toi.
 

masterpsx a écrit :

son script était faux et tu l'aides a le corriger


 
Et c'est le but d'un forum.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-04-2008 à 13:20:41    

skeye a écrit :


en disant que c'est impossible sans plus de précisions, si. Enfin bref, si tu ne sais pas faire la distinction entre "c'est impossible" et "ton programme est incorrect" je ne peux pas grand chose pour toi.


Son script est correct, tu l'as aidé toi même à le corriger, pour moi le problème ne viens pas du codage mais de ce qu'il cherchait à en faire d'ou mon intervention dans ce topic puisqu'il est revenu pour dire que ca ne fonctionait toujours pas malgré ton aide. Relis mon 1er message, je n'ai jamais remis en cause le codage ou la fonction exec(), je parle du fichier bash qui pour moi, depuis le début, est la source du problème, je vois vraiment pas en quoi je te contredis à ce moment la.  
 
Si je rentre pas dans les détails c'est simplement que j'en vois pas l'interet et que j'estime que ca n'a plus sa place dans ce forum, on n'a pas le droit d'avoir un avis différent du tiens ou tu as la science infuse peut être ? C'est un forum public il me semble et tu n'est ni un modérateur ni un administrateur, j'ai quand même le droit de participer à un topic sans te demander ton avis. Que mes messages ne te convienent pas c'est ton prôblème et ne te donne pas le droit de m'insulter ou me manquer de respect.
 
Bref, je vais pas y passer la journée non plus, on n'est pas obligé de s'adresser l'un à l'autre même si on participe au même topic alors autant s'ignorer plutot que de rentrer dans des polémiques stériles et sans interêt, c'est en tout cas ce que je ferais pour ma part.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed