Heim > Artikel > Backend-Entwicklung > Warum kann mein Bash-Skript nicht ausgeführt werden, wenn es von PHP mit „shell_exec“ aufgerufen wird?
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:
<code class="php">$output = shell_exec("./script.sh var1 var2");</code>
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 zum Scheitern 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:
<code class="php">$old_path = getcwd(); chdir('/my/path/'); $output = shell_exec('./script.sh var1 var2'); chdir($old_path);</code>
In diesem Beispiel tun wir Folgendes:
Indem Sie sicherstellen, dass das richtige Verzeichnis vorhanden ist, sollte dieser geänderte Code das Bash-Skript von PHP erfolgreich ausführen.
Das obige ist der detaillierte Inhalt vonWarum kann mein Bash-Skript nicht ausgeführt werden, wenn es von PHP mit „shell_exec“ aufgerufen wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!