Ausführen von Bash-Befehlen aus PHP
Beim Versuch, Bash-Skripte aus PHP mit der Funktion „shell_exec“ auszuführen, können Probleme frustrierend sein. Während Befehle wie ls ordnungsgemäß funktionieren, kann die Ausführung benutzerdefinierter Skripte fehlschlagen.
Dieses Problem entsteht häufig durch das aktuelle Arbeitsverzeichnis von PHP. Beim Aufrufen externer Befehle ist es wichtig sicherzustellen, dass auf das ausgeführte Skript aus dem richtigen Verzeichnis zugegriffen werden kann.
Lösung
Um dieses Problem zu beheben, verwenden Sie die Funktion chdir, um das zu ändern Arbeitsverzeichnis vorübergehend vor der Ausführung des Skripts:
<code class="php">$old_path = getcwd(); chdir('/my/path/'); $output = shell_exec('./script.sh var1 var2'); chdir($old_path);</code>
Diese Technik stellt sicher, dass sich das Skript „im“ vorgesehenen Verzeichnis befindet, bevor der Shell-Befehl aufgerufen wird. Der Pfad des Skripts kann im Funktionsaufruf chdir angegeben werden. Sobald die Skriptausführung abgeschlossen ist, wird das ursprüngliche Arbeitsverzeichnis mit chdir($old_path) wiederhergestellt.
Das obige ist der detaillierte Inhalt vonWie führe ich Bash-Skripte aus PHP aus und vermeide Probleme mit dem Arbeitsverzeichnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!