Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich ein Python-Skript erfolgreich von PHP aus ausführen?
PHP bietet mehrere Funktionen zum Ausführen externer Befehle, einschließlich exec, shell_exec und system. Beim Versuch, ein Python-Skript mit diesen Funktionen auszuführen, können jedoch Probleme auftreten.
Fehlerbehebung:
Um dieses Problem zu beheben, haben Sie verschiedene Lösungen ausprobiert, darunter:
Sie haben jedoch festgestellt, dass PHP immer noch keine Ausgabe erzeugt.
Lösung:
Das Problem liegt möglicherweise nicht bei PHP, sondern bei den Berechtigungen. Webserver werden normalerweise mit eingeschränkten Benutzerrechten ausgeführt, was ihre Fähigkeit, bestimmte Befehle auszuführen oder auf Dateien zuzugreifen, einschränken kann.
Melden Sie sich bei Ihrem Server als der Benutzer an, unter dem Ihr Webserver läuft (z. B. www-data).
Verwenden Sie den Befehl, den Sie in PHP ausführen möchten, und führen Sie ihn manuell aus Terminal als Webserver-Benutzer. Zum Beispiel:
/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2
Wenn der Befehl manuell ausgeführt wird, bestätigt er, dass das Problem bei den Berechtigungen liegt.
Stellen Sie sicher, dass das PHP-Skript und das Python-Skript über die richtigen Berechtigungen verfügen. PHP sollte Ausführungsberechtigungen für das PHP-Skript haben, und das Python-Skript sollte Ausführungsberechtigungen für den Webserver-Benutzer haben.
Die Shell_exec-Funktion von PHP ist im Allgemeinen zuverlässiger für die Ausführung externer Befehle als exec oder system. Es gibt die vollständige Ausgabe des ausgeführten Befehls zurück. Verwenden Sie den folgenden Code:
$command = escapeshellcmd('/usr/custom/test.py'); $output = shell_exec($command); echo $output;
Stellen Sie sicher, dass die erste Zeile Ihrer Python-Datei Folgendes enthält Shebang-Zeile:
#!/usr/bin/env python
Diese Zeile gibt den Python-Interpreter an verwenden.
Machen Sie Ihre Python-Datei bei Bedarf auf UNIX-Plattformen ausführbar mit:
chmod +x myscript.py
Das obige ist der detaillierte Inhalt vonWie kann ich ein Python-Skript erfolgreich von PHP aus ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!