Ausführen von Bash-Befehlen aus PHP: Fehlerbehebung bei nicht ausführbaren Skripten
Ein Benutzer hat Schwierigkeiten beim Ausführen eines Bash-Skripts aus einer PHP-Datei. Trotz der Versuche, „shell_exec“ und „system“ zu verwenden, bleibt das Skript unausgeführt. Andere Befehle wie „ls“ funktionieren jedoch ordnungsgemäß mit „shell_exec“.
Mögliche Ursache und Lösung:
Das Problem ist höchstwahrscheinlich auf die Ausführung des Skripts aus dem falschen Verzeichnis zurückzuführen. Um dieses Problem zu beheben, muss der Benutzer vor der Ausführung das aktuelle Arbeitsverzeichnis in das Verzeichnis ändern, in dem sich das Skript befindet. Dadurch wird der richtige Kontext für die Ausführung des Skripts sichergestellt.
Codeausschnitt:
Der folgende Codeausschnitt zeigt, wie das Bash-Skript korrekt ausgeführt wird:
<code class="php">$old_path = getcwd(); chdir('/my/path/'); // Change to the script's directory $output = shell_exec('./script.sh var1 var2'); chdir($old_path); // Return to the previous working directory</code>
In diesem Code ruft getcwd() das aktuelle Arbeitsverzeichnis ab, chdir('/my/path/') setzt das Arbeitsverzeichnis auf den Pfad des Skripts, shell_exec('./script.sh var1 var2') führt das aus Skript mit den angegebenen Argumenten und chdir($old_path) kehrt zum vorherigen Arbeitsverzeichnis zurück.
Das obige ist der detaillierte Inhalt vonWarum werden meine Bash-Skripte nicht von PHP ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!