Executer un BASH a partir d'un bouton - PHP - Programmation
Marsh Posté le 20-04-2008 à 15:27:46
Le php est exécuté sur le serveur. C'est tout ce que j'ai à dire.
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
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...
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.
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.
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
Marsh Posté le 20-04-2008 à 15:45:23
non, tu ne suis pas bien. mais tu oublies le onclick.
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....
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.
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.
Marsh Posté le 20-04-2008 à 15:58:28
Je ne t'ai rien dit de compliqué.
il faut que tes boutons appellent des pages php qui vont exécuter tes scripts bash. Rien de bien complexe à comprendre!
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>
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à.
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
Marsh Posté le 20-04-2008 à 16:10:26
voilà, en gros c'est ça.
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
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 ?
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.
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.
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');
?>
Marsh Posté le 20-04-2008 à 18:42:27
skeye 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 ?
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. |
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 : |
sur le même serveur? oui.
Marsh Posté le 20-04-2008 à 20:26:38
skeye 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.
Marsh Posté le 20-04-2008 à 20:28:24
masterpsx a écrit : |
ok, merci pour les conseils captain obvious.
On va procéder par étapes si tu veux bien, il y connait rien.
Marsh Posté le 20-04-2008 à 21:19:29
skeye a écrit : |
T'est bien gentil mais ce genre de réflexion tu te les gardes, je suis pas ton pote.
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.
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: |
alors dans ton fichier php tu dois donner le chemin absolu vers tes fichiers bash.
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.
Marsh Posté le 21-04-2008 à 10:53:09
skeye a écrit : |
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.
Marsh Posté le 21-04-2008 à 11:01:03
masterpsx a écrit : |
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 : |
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.
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
Marsh Posté le 21-04-2008 à 11:09:50
masterpsx a écrit : |
VAZY DOU TU ME JUGE JTE CONNAI PAS ZYVA BATAR /§§
olol
Marsh Posté le 21-04-2008 à 12:02:46
skeye a écrit : |
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 : |
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.
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.
Marsh Posté le 21-04-2008 à 13:20:41
skeye a écrit : |
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.
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 édité par petitmr le 20-04-2008 à 15:23:28