Mit PHP Python-Skript ausführen?

4 Antworten

Versuchs mal mit

shell_exec('python ampel.py');
Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung
jaokcool12 
Fragesteller
 16.11.2021, 21:18

War auch schon ein Versuch. Leider das gleiche Ergebnis. Er spuckt mir nur die Datei aus.

0
Lezurex  16.11.2021, 21:19
@jaokcool12

Meinst du mit der Datei die gesamte PHP-Datei, also den Quellcode?

0
jaokcool12 
Fragesteller
 16.11.2021, 21:20
@Lezurex

Nein, er gibt mir den Quellcode der ampel.py wieder.

0

Lass dir doch mal die Rückgabe Werte ausgeben:

<?php

  if (isset($_POST['ampel'])) {
    exec('python ampel.py', $output, $return_var);
    echo "Rückgabe mit Status $return_var und Ausgabe:\n";
    print_r($output);
    echo("Ampel läuft");
  }

?>

nur zum verständnis

www-data ALL=(root) NOPASSWD: /usr/bin/python

hast du eingetragen .

jaokcool12 
Fragesteller
 16.11.2021, 21:23

www-data ALL=NOPASSWD:/var/www/html/ampel.py

www-data ALL=NOPASSWD:/var/www/html/lichterkette.py

So hab ich es eingetragen

0
TechPech1984  16.11.2021, 21:24
@jaokcool12

naja damit kannst du aber nicht python starten , sondern nur zugriff auf die scripte haben .

dein befehl will aber python starten .

probier mal dich als ww-data anzumelden und dann python deinscript.py zu starten , das wird nichts werden .

0
jaokcool12 
Fragesteller
 16.11.2021, 21:25
@TechPech1984

Hab eben mal die zeile hinzugefügt mit dem gleichen Ergebnis wie vorher

0
TechPech1984  16.11.2021, 21:27
@jaokcool12

du kannst das problem umgehen indem du im python script die Shebang hinzufügst . beispiel:

#!/usr/bin/env python

dann aber ohne python die shell_exec ausführen

0
TechPech1984  16.11.2021, 21:32
@jaokcool12

aber script ist jetzt auch für besitzer www-data ausführbar und ist natürlich auch vom besitzer www-data :)

also am besten wie immer chmod 755 .

und bei zwei scripten einach die pfade mit komma trennen und nicht 2 einträge machen .

0
TechPech1984  16.11.2021, 21:41
@jaokcool12

ggf noch

sudo python scriptblabla.py 
bzw nur sudo scriptblabla.py 

hast du nochmal das gelesen was ich dazugefügt habe , also keine 2 einträge sondern 1 eintag und die script pfade mit komma trennen .

0
jaokcool12 
Fragesteller
 16.11.2021, 21:44
@TechPech1984

Jap, alles gemacht. Das Python Script lässt sich ja wie gesagt einwandfrei ausführen.. :/

0
TechPech1984  16.11.2021, 21:49
@jaokcool12

hä ich dachte du bekommst das python script als download ?

also lässt es sich jedenfalls nicht nicht vom apache mod_php ausführen .

btw ist das auch einem raspberry ?

hast du fehlermeldungen beim php angeschaltet , findet sich sonstwas im system an logs dazu ?

0

Was nutzt Dir die Anpassung von sudoers, wenn Du gar kein sudo ausführst?