Page 1 sur 5

[resolu]Lancer un script Python en PHP

Posté : dim. 7 déc. 2014 18:40
par zeverybest
bonjour a tous

Dois je mettre ce post dans la rubrique Python ou PHP?

Voilà
Je voudrai, depuis une page web en PHP, lancer un script Python

J'ai trouver plein de chose sur le net qui devraient fonctionner, mais rien ne fonctionne (exécuté, Shell, ...)
J'ai donner les droit d'exécution a tout le monde (j'ai pas fait dans la dentelle avec un chmod 777, comme ça, pas de risque
Le "orner" du fichier est ROOT

Mais, rien ne fonctionne

Quelqu'un a t il déjà fait ça, et réussi à le faire fonctionner?

Si oui, je suis preneur de l'astuce

Cordialement

Re: Lancer un script Python en PHP

Posté : dim. 7 déc. 2014 18:55
par EVOTk
Salut;

J'avais essayer et j'avais au des petit problemes que javais resolu comme ceci ( de mémoire )

Edition de etc/sudoers :
Javais rajouter la permission suivante !
www-data ALL=(ALL) NOPASSWD:ALL
Sa marcher, par contre, avec cette ligne on autorise TOUT, se n'est donc pas tres "safe" cetait juste pour un essai donc je n'avais pas creuser plus loin

Re: Lancer un script Python en PHP

Posté : dim. 7 déc. 2014 20:15
par vague nerd
Bonjour.

Si vous utilisez apache pour exécuter le php, il faut donner les droits à www-data.
C'est le user utilisé par apache, qui va réellement lancer le shell.

Pour donner les droits à www-data sur cake, j'a fait :

Code : Tout sélectionner

sudo chown -R yourname:www-data cake
sudo chmod -R g+s cake
La première commande change les owner et groupe, la seconde ajoute l'attribut nécessaire pour que les sous répertoires de cake aient les même doits.

Un chmod 777, ou l'ajout de www-data aux sudoers me semble disproportionné !

Cordialement.

Re: Lancer un script Python en PHP

Posté : lun. 8 déc. 2014 08:34
par zeverybest
Mais biensur, les droit doivent etre donné a www-data et non www come j'avais essayer de faire

Je teste ça rapidement

C'est evident que si cela fonctionne, la restriction des droits sera appliqué

Merci

Re: Lancer un script Python en PHP

Posté : lun. 8 déc. 2014 11:20
par domi
Bonjour,

Petite précision, la modification du sudoers est nécessaire uniquement si la commande python doit être exécutée par PHP en mode root, c'est à dire à l'aide de "sudo".
Mais par sécurité, ne pas mettre en ALL, ajouter à www-data juste la commande nécessaire.

Cdt

Re: Lancer un script Python en PHP

Posté : lun. 8 déc. 2014 13:02
par vague nerd
+1 à domi.

Dites-nous si ça marche, et merci d'ajouter un "[RESOLU]" dans le titre du premier post, le cas échéant !

Cdt.

Re: Lancer un script Python en PHP

Posté : lun. 8 déc. 2014 17:45
par zeverybest
Je ne pourrais pas essayer avant jeudi, mais je vous fait un feedback des que c'est fait

Re: Lancer un script Python en PHP

Posté : mar. 9 déc. 2014 14:07
par nexen
Hello :)

Autre possibilité : Vérifie les paramètres du PHP.INI .... Il peux y avoir une restriction sur le lancement de commande shell :)

cordialement.

Re: Lancer un script Python en PHP

Posté : mar. 9 déc. 2014 16:39
par zeverybest
Ah

Et quelles restrictions?
Il faut en dire plus

Cela dit, une commande shell sur un ls ou un pwd fonctionne très bien, donc ça ne doit pas etre ça

Mais l'info peut quand même être interessante

Re: Lancer un script Python en PHP

Posté : jeu. 11 déc. 2014 11:02
par zeverybest
vague nerd a écrit :Bonjour.

Si vous utilisez apache pour exécuter le php, il faut donner les droits à www-data.
C'est le user utilisé par apache, qui va réellement lancer le shell.

Pour donner les droits à www-data sur cake, j'a fait :

Code : Tout sélectionner

sudo chown -R yourname:www-data cake
sudo chmod -R g+s cake
La première commande change les owner et groupe, la seconde ajoute l'attribut nécessaire pour que les sous répertoires de cake aient les même doits.

Un chmod 777, ou l'ajout de www-data aux sudoers me semble disproportionné !

Cordialement.
J'ai fait tout comme tu as dis et ça ne fonctionne pas

un system("ls") fonctionne mais un system ("python monfichier.py") ne fonctionne pas

j'ai essayé : system ("python monfichier.py") , system ("./python monfichier.py") , system ("python /cheminComplet/monfichier.py")

Rien ne fonctionne