bonjour, est ce que quelqu'un sais comment on peut faire pour qu'un script PHP peut exécuter un script shell sur un serveur linux pour pouvoir afficher les résultat fournée par ce script shelle
merci
bonjour, est ce que quelqu'un sais comment on peut faire pour qu'un script PHP peut exécuter un script shell sur un serveur linux pour pouvoir afficher les résultat fournée par ce script shelle
merci
La fonction exec() n'est-elle pas faite pour ça ?
Fred
peut tu me donner un exemple stp merci
Il y a quelques exemples ici.
Fred
oui c'est sa mais on faite j'ai un script shell (fonction.sh) qui appel une fonction java qui permet de créer des rapport et moi je veux pouvoir appeler le script fonction.sh et pas écrire la commande comment je peux faire ça
string shell_exec ( string cmd)
Bonjour, as-tu essayé de le lancer de la même façon que sous un terminal unix:
./script.sh
et donc
exec('./script.sh')
Je l'ai déjà fais sur une page php, j'ai l'exemple concret chez moi, au pire si cela ne fonctionne pas je te donne un bout de script fonctionnel ce soir.
Mateuy
oui j'ai essayer mais sa m'affiche rien![]()
Voilà j'ai retrouvé mon script, il permet d'ouvrir et fermer le lecteur optique de mon serveur UNIX
Voilà exactement la ligne correpondante au lancement d'un script :
exec ("./test");
Je te passe tous les scripts, ils fonctionnent mais il y a un léger bug lors de l'enchainement d'ouverture/fermeture du lecteur optique.
Script test : ouverture
Script test2 : fermeture
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4#!/bin/bash eject -r
Index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4#!/bin/bash eject -t
Pour rechercher tout autre problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 <?php if(!isset($_POST['test'])) { echo ' <form method="post" action="index.php"> <tr> <td><input type="hidden" value="0" name="cdrom" /></td> </tr> <tr> <td><input type="submit" value="Ouvrir le lecteur" name="test" /></td> </tr> </form> '; } else { $lecteur=$_POST['cdrom']; if($lecteur == 0 ) { $lecteur=1; exec ("./test"); echo 'Lecteur ouvert !!'; echo ' <form method="post" action="index.php"> <tr> <td><input type="hidden" value="1" name="cdrom" /></td> <td><input type="submit" value="Fermer le lecteur" name="test" /></td> </tr> </form> '; } else { $lecteur=0; exec ("./test2"); echo 'Lecteur fermé.'; echo ' <form method="post" action="index.php"> <tr> <td><input type="hidden" value="0" name="cdrom" /></td> <td><input type="submit" value="Fermer le lecteur" name="test" /></td> </tr> </form> '; } } ?>
>> places le script dans le dossier racine du site web pour éliminer l'hypothèse de s'être trompé dans le chemin.
>> vérifies que ton serveur WEB (je suppose que c'est Apache) possède les droits nécessaires pour exécuter le script. Les droits pour mes scripts sont ci-dessous :
Le propriétaire et le groupe sont en www-data.
Voilà j'espère que cela t'aidera.
Mateuy
merci bcp c'est vraiment gentil de ta part je vais modifie mon code...![]()
Mais de rien![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager