[RESOLU] - Lancer un sript Python depuis PHP

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
phdenaujan
Messages : 63
Enregistré le : lun. 5 janv. 2015 21:29

[RESOLU] - Lancer un sript Python depuis PHP

Message par phdenaujan » jeu. 26 févr. 2015 14:45

Bonjour,

Je crée une page HTML de type formulaire. Les données sont enregistrées, par l’intermédiaire d'un code PHP dans un fichier txt.

Depuis ce fichier est créé via un code python lancé depuis le script PHP un fichier pikle à enregistrer dans home/pi.

Tout fonctionne tant que je reste dans le dossier www. mais dès que je modifie le chemin du fichier (pour aller dans home/pi), cela ne fonctionne plus (pas de création du fichier pikle dans le dossier home/pi).

Dans le script PHP :

Code : Tout sélectionner

exec('python3 creationFichier.py')
Dans le script Python :

Code : Tout sélectionner

chdir ("/home/pi")
fichier =open ("conf", "wb")
Lancé depuis la console, le script Python fonctionne sans problème avec création du fichier à l'endroit désigné.

Avez-vous une idée ?
Modifié en dernier par phdenaujan le jeu. 26 févr. 2015 17:17, modifié 2 fois.
Ph.

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Lancer un sript Python depuis PHP

Message par Manfraid » jeu. 26 févr. 2015 15:26

je pense que c'est un problème de droit

le user www-data n'a pas le droit d'écrire dans le répertoire du user pi tout simplement
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

domi
Administrateur
Messages : 3230
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Lancer un sript Python depuis PHP

Message par domi » jeu. 26 févr. 2015 16:35

Manfraid a écrit :je pense que c'est un problème de droit

le user www-data n'a pas le droit d'écrire dans le répertoire du user pi tout simplement
+1
C'est simplement un problème de droits
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

phdenaujan
Messages : 63
Enregistré le : lun. 5 janv. 2015 21:29

[RESOLU] - Lancer un sript Python depuis PHP

Message par phdenaujan » jeu. 26 févr. 2015 17:16

Merci pour vos réponses. Pour éviter de changer les droits d’accès, je vais donc aller chercher le dossier dans le dossier /www plutôt que le l'envoyer vers /pi
Ph.

oxy34070
Messages : 7
Enregistré le : dim. 18 janv. 2015 16:01

Re: [RESOLU] - Lancer un sript Python depuis PHP

Message par oxy34070 » sam. 21 mars 2015 19:11

Salut,
Je ne sais pas si tu as résolu ton problème, mais au cas ou pour les autres , pour ne plus avoir de problème de droits sur les scripts python:
une fois le script créé:
sudo chmod +x /chemin/du/script.py
sudo chown www-data /chemin/du/script.py
ensuite : sudo visudo
et sous dans la categorie "user privilege specification" sous root : ....
il faut créer une ligne avec le chemin:
www-data ALL=(ALL) NOPASSWD: /chemin/du/script.py

A faire pour touts les scripts python qui doivent être appelés de l’extérieur.

phdenaujan
Messages : 63
Enregistré le : lun. 5 janv. 2015 21:29

Re: [RESOLU] - Lancer un sript Python depuis PHP

Message par phdenaujan » mer. 25 mars 2015 23:02

Bonsoir,

Oxy, tu devances mes problèmes... En effet, hier j'ai bidouillé le fichier sudoers sans sucés. En fait j'avais résolu provisoirement le problème en plaçant mon script dans le dossier www.

Je penses en fait avoir aussi un problème avec le chmod sur mon script.

Normalement, un "./monscript.py" devrait pouvoir le lancer (enfin je crois). Or rien. De plus, lors que fais un skeleton pour un démarrage auto, je suis dans l'obligation de lancer python (NAME=python) avec en argument le chemin de mon script. Est-ce normal ?

Pour résumer, je rame...

Dans mon fichier .py

Code : Tout sélectionner

#!/usr/bin/env python
# -*- coding: latin-1 -*-
Ph.

Répondre

Retourner vers « Python »