Dans le cadre d’un projet d’une machine cocktail, Je souhaite exécuter sur mon raspberry un programme python partir d’un lien sur interface web. Ça fait 3 jours que je cherche comment faire en vain.
Bon après divers essais j’ai remis tout les fichier d’origine et j’ai juste modifier le fichier nommé 000-défault.conf ( situé dans etc/apache2/site-available)
et j’ai ajouter en dessous de DocumentRoot /var…
> <Directory /var/www/>
> Options ExecCGI Indexes FollowSymlinks Multiviews
> AllowOverride none
> Order allow,deny
> allow from all
> AddHandler cgi-script .py
> </Directory>
et j’ai créer un fichier python pour afficher 'une page HTML ( comme ci dessous) ça fonctionne
#!/usr/bin/python3
import RPi.GPIO as GPIO # bibliothèque pour utiliser les GPIO
import time # bibliothèque pour gestion du temps
print("Content-type:text/html\r\n\r\n")
print("<html><body>")
print("<h1> It's works!! </h1>")
for i in range(5):
print("<h2> Hello world!"+str(i)+"</h2>")
print("</body></html>")
Par contre des que je met un code autre, qui fait appel à des sortie GPIO il se passe rien… alors que si je le lance par l’interface graphique ou pas bash ca fonctionne :’(
Attention, l’utilisation de GPIO demande d’être root. Or de base apache n’est pas root sur ta machine, et il faut mieux que cela reste ainsi. Tu peux mettre ton fichier en root et ajouter le setuid.
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Et quand je vais dans le fichier error.log ( /var/log/apache2) je n’ai aucune erreur a date…