Problem
Heute habe ich festgestellt, dass bei Verwendung eines Timers ein Shell-Skript ausgeführt und das Protokoll normal gedruckt wird, das Ergebnis der aktuellen Shell-Skriptausführung jedoch nicht gefunden werden kann das System.
Da ich ein Webprogramm verwende, bin ich auch neu im Shell-Calling. Ich bin noch nie auf dieses Problem gestoßen und kann daher nur raten.
Urteil
1. Shell-Skriptproblem.
Überprüfungsmethode: Rufen Sie die Systemkonsole auf und rufen Sie das Skript direkt auf, um zu überprüfen, ob das Skript normal ist. Beheben Sie Fehler im Skript selbst.
2. Stellen Sie fest, ob das Problem auf Berechtigungen zurückzuführen ist.
Überprüfungsmethode: Rufen Sie die Konsole auf und sehen Sie sich das Ausführungsprotokoll „author.log“ an. Tatsächlich wurde darauf hingewiesen, dass ein Problem mit den Kontoberechtigungen vorliegt.
ls Überprüfen Sie die Shell-Skriptinformationen und stellen Sie fest, dass der Benutzer des Webprogramms und der Benutzer mit der Berechtigung des Shell-Skripts nicht dasselbe Konto sind. Ändern Sie es auf dasselbe Konto und starten Sie das Programm erneut, um das Problem zu beheben.
Fazit:
Ähnliche Probleme werden im Wesentlichen durch die beiden oben genannten Aspekte verursacht. Wenn es Ausnahmen gibt, überprüfen Sie die Protokolle häufiger. Grundsätzlich werden alle Probleme ausgedruckt.
Weitere PHP-Kenntnisse finden Sie im PHP-Tutorial!
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem, dass Shell_exec() das Shell-Skript in einem Webprogramm in PHP nicht ausführen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!