Comment exécuter un fichier python depuis une page web

Tommy -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je suis un lycéen en terminale sti2d et j'aurai vraiment de vos conseils d'expert pour réussir mon projet de fin d'année pour mon grand Oral.
Mon problème est le suivant :
J'ai une page web qui se trouve sur un serveur apache, logé sur une carte Raspberry Pi 3. Le programme de ma page web est la suivante :
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>

<form action="script.php" method="post">
<input type="submit" name="executer" value="ON" class="button" id="ON">
<br/>
<input type="submit" name="executer" value="OFF" class="button" id="OFF">
</form>

</body>
</html>


Ce code génère deux boutons on/off est qui ont pour but d'allumer et d'éteindre une LED. Maintenant je voudrais qu'en cliquant sur un de ces boutons je puisse déclencher ou éteindre ma LED. Pour cela j'ai trouvé un code php qui est sûrement source d'erreur :

<?php
echo "Hello";

$command = escapeshellcmd('./led.py');
$output = shell_exec($command);
echo $output
?>


Ce code est censé exécuter un fichier python qui va par la suite allumer ma led. Cependant quand j'exécute le fichier python manuellement dans le powershell, le programme fonctionne très bien.
Mon programme est le suivant :

#!/usr/bin/env python3 
#-- coding: utf-8 --

import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs

GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board)
GPIO.setwarnings(False) #On désactive les messages d'alerte

LED = 11 #Définit le numéro du port GPIO qui alimente la led

GPIO.setup(LED, GPIO.OUT) #Active le contrôle du GPIO

state = GPIO.input(LED) #Lit l'état actuel du GPIO, vrai si allumé, faux si éte$

if state : #Si GPIO allumé
GPIO.output(LED, GPIO.LOW) #On l’éteint
else : #Sinon
GPIO.output(LED, GPIO.HIGH) #On l'allume


Avec tous ça je n'arrive pas à exécuter mon fichier python depuis ma page web. J'espère vous avoir donné assez d'information pour vous éclairer dans mon problème.
J'ai vraiment besoin de votre aide vous me sauverez la vie.
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Le script php que tu montres semble bien être le bon.
Par contre il faut :
Indiquer le chemin de l'exuteur python et passer le chemin vers ton script en paramètres.

Par exemple
<?php

$output = shell_exec("/usr/local/bin/python3 /chemin/vers/ton/script.py");
var_dump $output


Qu'est-ce que ça t'affiche ?

0