In dieser Frage treffen wir auf einen PHP-Entwickler, der versucht, ein Bash-Skript aus PHP mit „shell_exec“ auszuführen. Die verwendete Syntax lautet:
$output = shell_exec("./script.sh var1 var2");
Das Skript kann jedoch nicht ausgeführt werden, wenn dieser Befehl aufgerufen wird.
Um dieses Problem zu beheben, ist es wichtig, die Fehlerursache zu ermitteln. Da das Skript erfolgreich ausgeführt wird, wenn es über die Befehlszeile mit ./script.sh var1 var2 ausgeführt wird, liegt das Problem wahrscheinlich im PHP-Code.
Ein häufiges Problem, das zu einem Fehler bei der Skriptausführung führen kann, sind falsche Verzeichnisberechtigungen oder Pfade . PHP-Skripte erfordern oft die Einstellung des richtigen Arbeitsverzeichnisses, bevor externe Befehle ausgeführt werden. Um dieses Problem zu beheben, kann der Code mithilfe von chdir das richtige Verzeichnis angeben, bevor Shell_exec aufgerufen wird.
Das folgende Snippet behebt dieses Problem:
$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);
In diesem Beispiel:
Indem sichergestellt wird, dass das richtige Verzeichnis vorhanden ist, sollte dieser geänderte Code das Bash-Skript von PHP erfolgreich ausführen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3