Also ich wüsste jetzt nicht so 100% sicher wie Du genau die Fehlermeldung sehen kannst die Du nochmal in der Shell bekommst aber es gibt ne Möglichkeit zumindest mal nen Errorcode zu bekommen.
|
PHP Source code
|
1
2
|
exec ($test, escapeshellcmd($test), $ergebnis);
echo $ergebnis;
|
Da wirst Du irgend eine Zahl sehen. Sollte die Zahl 0 sein so kannst Du dir fast 100% sicher sein wurde das Kommando garnicht verarbeitet. Soweit ich das jetzt weiß ist 1 sehr gut und heißt genau das was funktionieren sollte hat auch funktioniert. Wie das allerdings dann genau aussieht bzw. welcher Fehlercode was besagt kann ich nicht sagen. Ich glaube das hängt auch mit der Distribution zusammen.
EDIT:
Mir ist grade noch was eingefallen.
|
PHP Source code
|
1
2
3
|
$return = exec($test);
if(!$return) echo "Fehler";
else echo "Kein Fehler";
|
Das wäre in der Sache vollständig falsch. Der Rückgabewert von exec ist ein String und sollte normal genau die Meldung enthalten die Du in der Konsole sehen würdest. Das heißt wenn Du in der Konsole keine Rückmeldung bekommst und einfach wieder im Kommandoprompt stehst dann wär der Rückgabewert von exec NULL oder False und das obwohl deine Funktion die ausgeführt wurde exakt funktioniert hat! Deshalb etwas umdenken das kann gut sein das es geklappt hat und Du einfach nur falsch ausgewertet hast so gesehen.