2017-09-26 1 views
0

après de nombreuses recherches, je viens ici pour un coup de main. Je travaille sur un Raspberry PI 3 avec le dernier système d'exploitation raspbin. J'ai un serveur web (Appache, MySQL, PHP) fonctionnant bien dessus.Raspbian - Execute fichier .py du code PHP

J'essaie d'exécuter un fichier .py à partir du code PHP, mais cela ne fonctionne pas. J'ai essayé de changer l'emplacement du fichier/var/www/html, j'ai ajouté exception www-data à sudoers, j'ai ajouté

#!/usr/bin/env python 

en début de mon dossier .py, j'ai essayé le changement de propriété de fichier à donner à www -data, j'ai essayé de changer www-data à un utilisateur root, mais mon .py ne s'exécute toujours pas.

Mon fichier .py fonctionne correctement via SSH ou directement.

Voici comment je le lance

exec('sudo -u www-data python /var/pi/www/html/Currenttestpy.py', $out, $status); 

echo 'Status : ' . $status . '.' ; 

il me renvoie un état "1". Je trie le même code avec l'utilisateur pi, même résultat. Toute aide sera appréciée.

+0

Je pense que le problème sera avec cette instruction 'sudo'. Le script PHP sera exécuté en tant qu'un autre utilisateur et ne peut pas s'élever à la racine. MAIS ... Le script PHP ne devrait-il pas être exécuté sous www-data? –

+0

Eh bien, un coup de main vient d'IRC: l'affaire vient de ma commande. J'ai capturé stderr en ajoutant 2> & 1 à la fin de ma commande, exec ('sudo -u racine python /var/www/html/Currenttestpy.py 2> & 1', $ out, $ status); et l'erreur était claire. – user3927850

Répondre

0

Avez-vous essayé de courir sans élever à la racine?

exec('python /var/pi/www/html/Currenttestpy.py', $out, $status); 

echo 'Status : ' . $status . '.' ;