[RESOLU] executer script python depuis page php

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
usertop57
Messages : 3
Enregistré le : ven. 26 juin 2015 23:23

[RESOLU] executer script python depuis page php

Message par usertop57 » ven. 26 juin 2015 23:50

Bonsoir, voila une semaine que je cherche une solution à mon problème sans résultat ! Je possède un raspberry pi 2 avec Raspbian qui est connecté par le port USB a une carte ARDUINO UNO. et j'ai crée un programme en python qui lorsque celui ci est exécuté, envoi un chiffre (le n°7 dans notre cas) actionnant le relais de la carte connecté à l'arduino :

donc voici mon programme python que j'ai crée : (on_pellet.py)

Code : Tout sélectionner

#! /usr/bin/env python
import serial
import time
ser = serial.Serial('/dev/ttyACM0', 9600)
time.sleep(3)
ser.write(7)
print "relais allume"
j'ai installé php et mysql sur raspbian et j'ai placé mon programme en python dans le dossier /var/www
Lorsque dans le terminal je me position dans le dossier /var/www et que j’exécute le script python avec la commande : python on_pellet.py
j'ai en retour "relais allume" et le relais de la carte arduino est actionné.
Donc pas de soucis au niveau de python

La ou sa ce corse, c'est que j'essaye d’exécuter le script en ouvrant un page web, ainsi voici le code de ma page web index.php qui se trouve dans le même dossier que le script python (/var/www) :

Code : Tout sélectionner

<?php
echo 'mise en marche du relais';
exec('python on_pellet.py')
?>
j'ouvre la page dans le navigateur web mais rien ne se passe, j'ai essayé avec system à la place de exec mais rien non plus, j'ai essayé en spécifiant le chemin complet du script 'on_pellet.py' mais rien non plus, alors j'avais pensé à un problème de droit sur les fichier alors dans le dossier /var/www j'ai passé le propriétaire et le groupe de propriétaire au 'pi' mais toujours rien !!
je sèche plus aucune idée :| :| pouvez m'aider ?
Modifié en dernier par usertop57 le lun. 29 juin 2015 18:38, modifié 1 fois.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: executer script python depuis page php

Message par vague nerd » sam. 27 juin 2015 00:00

Bonsoir.
Votre serveur web ne doit pas avoir le droit de lancer votre script. Quel est votre serveur web ?
Habituellement, le user à qui il faut donner les droits, c'est www-data...

Si je vous parle klingon, lisez ceci !
Cdt.
Cordialement,

Vague Nerd

usertop57
Messages : 3
Enregistré le : ven. 26 juin 2015 23:23

Re: executer script python depuis page php

Message par usertop57 » sam. 27 juin 2015 00:18

merci pour cette réponse rapide, j'ai installé apache comme serveur.

J'ai défini comme utilisateur www-data pour les fichiers on_pellet.py et index.php
mais ca n'a pas changé !

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: executer script python depuis page php

Message par vague nerd » sam. 27 juin 2015 01:04

Ca n'aurait déjà pas marché sans ça (le user apache 2 est bien www-data).

Je remarque que

Code : Tout sélectionner

exec('python on_pellet.py')
ne donne pas le chemin du script. Le script est à la racine de www ? Sinon, précisez le chemin relativement à www.
EDIT : j'ai rien dit (mais essayez quand même avec le chemin complet) :
j'ai installé php et mysql sur raspbian et j'ai placé mon programme en python dans le dossier /var/www
Lorsque dans le terminal je me position dans le dossier /var/www et que j’exécute le script python avec la commande : python on_pellet.py
Le user www-data a le droit d'exécuter python ? Le chemin de python est connu de www-data ?

Enfin, il faut regarder les log du serveur. Vous y trouverez surement l'explication, mais sans sa langue à lui !

Cdt.
Cordialement,

Vague Nerd

usertop57
Messages : 3
Enregistré le : ven. 26 juin 2015 23:23

Re: executer script python depuis page php

Message par usertop57 » sam. 27 juin 2015 13:18

merci vague nerd, le problème venait du fait que l'utilisateur www-data ne pouvait executer le script on_pellet.py
j'ai donc fait un : sudo chown -R www-data:www-data /var/www/on_pellet.py

decidement ces histoires de droits sur linux je ne m'y ferait jamais, en tout cas merci pour ton aide :D :mrgreen: ;)

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: executer script python depuis page php

Message par vague nerd » sam. 27 juin 2015 16:57

Tant mieux et avec plaisir.

Mais je croyais que c'est ce que vous vouliez dire par :
J'ai défini comme utilisateur www-data pour les fichiers on_pellet.py et index.php
Si vous estimez que votre problème est résolu, merci d'ajouter [RESOLU] au début du titre du sujet.
Pour ce faire, visualiser le premier Post que vous avez réalisé, cliquez sur "Editer", et ajouter [RESOLU] devant le titre.

Cela permet que le message soit tout de suite identifié comme ayant eu une réponse correspondant à la demande.
Ainsi, les visiteurs en sont informés, aussi bien lors d'une recherche sur le forum qu'au travers des moteurs de recherche.

Merci d'avance !

Cordialement.
Cordialement,

Vague Nerd

Répondre

Retourner vers « Python »