Ein Python-Skript nahtlos von PHP aus ausführen
Um ein Python-Skript mit PHP auszuführen, stehen mehrere Methoden zur Verfügung, darunter exec, shell_exec und system . Wenn Sie jedoch exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2') in PHP verwenden, wird möglicherweise keine Ausgabe generiert, obwohl die Fehlerberichterstattung auf E_ALL gesetzt und display_errors aktiviert ist.
Um dieses Problem zu beheben, ist es wichtig zu überprüfen, ob der Webserver-Benutzer über die erforderlichen Berechtigungen verfügt, um auf das Python-Skript und die zugehörigen Befehle zuzugreifen und diese auszuführen. Konkret sollte die Python-Datei über Berechtigungen zur Ausführung verfügen und auch alle internen Befehle sollten mit entsprechenden Berechtigungen eingerichtet sein.
Problemlösung mit Shell_exec
Ubuntu Server 10.04 beweist ein geeignetes Umfeld für diese Lösung zu sein. Mithilfe der PHP-Funktion „shell_exec“ kann der Befehl ausgeführt und die Ausgabe als Zeichenfolge zurückgegeben werden. Der folgende PHP-Codeausschnitt veranschaulicht diesen Ansatz:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
Bedeutung der Shebang-Zeile im Python-Skript
Das Python-Skript (test.py) sollte mit beginnen Folgende Zeile stellt sicher, dass der richtige Interpreter aufgerufen wird:
#!/usr/bin/env python
Diese Zeile weist das System an, Python zu verwenden Der in der Umgebungsvariable $PATH angegebene Interpreter stellt die Kompatibilität mit verschiedenen installierten Python-Versionen sicher.
Um das test.py-Skript auf Unix-basierten Plattformen ausführbar zu machen, führen Sie den folgenden Befehl aus:
chmod +x myscript.py
Ausführungsrechte für Dateien und Befehle
Neben dem Festlegen von ausführbaren Berechtigungen für das Python-Skript ist es ebenso wichtig, Folgendes zu tun Gewähren Sie dem Webbenutzer (normalerweise www-data/apache) Ausführungsrechte sowohl für die Datei als auch für ihre internen Befehle. Andernfalls kann es dazu kommen, dass das Skript nicht ordnungsgemäß ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWarum führt mein PHP-Code mein Python-Skript nicht aus und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!