Danke für Ihre Antwort !!
Ich habe das versucht
%pr_e%
und jetzt gab es keinen Exit-Code zurück ... andere Befehle machen Datei .. Ich versuchte mkdir etc ..: s
Ich verwende diesen PHP-Code:
%Vor%und bekomme einen Fehlercode von illegalem Befehl, dh 127 ... aber wenn ich diesen Befehl über ssh verwende funktioniert es ... weil Unrar auf dem Server installiert ist ... also kann jemand raten, warum exec das nicht macht richtige Sachen?
Wenn Sie Apache und PHP chrootten, sollten Sie auch / bin / sh in die chroot-Umgebung einfügen. Andernfalls wird die Funktion exec () oder passthru () nicht richtig funktionieren und den Fehlercode 127, Datei nicht gefunden, erzeugen.
Wenn Sie Apache und PHP chrootten, sollten Sie auch / bin / sh in die chroot-Umgebung einfügen. Andernfalls wird die Funktion exec () oder passthru () nicht richtig funktionieren und den Fehlercode 127, Datei nicht gefunden, erzeugen.
Da dies eine Top-Antwort in Google ist, wollte ich meinen Fix teilen:
Die einfache Lösung, die ich hatte, war safe_mode in der Datei php.ini zu deaktivieren
%Vor%Versuchen Sie es mit dem direkten Pfad der Anwendung (/ usr / bin / unrar von was auch immer), es klingt wie php kann die Anwendung nicht finden.
Danke für Ihre Antwort !!
Ich habe das versucht
%pr_e%
und jetzt gab es keinen Exit-Code zurück ... andere Befehle machen Datei .. Ich versuchte mkdir etc ..: s
Ich verwende diesen PHP-Code:
%Vor%und bekomme einen Fehlercode von illegalem Befehl, dh 127 ... aber wenn ich diesen Befehl über ssh verwende funktioniert es ... weil Unrar auf dem Server installiert ist ... also kann jemand raten, warum exec das nicht macht richtige Sachen?
Nur für den Fall, dass jemand anderes dieses Problem noch hat, sehen Sie sich den Beitrag hier an:
Quote:
Ich habe das Problem gefunden. Das Problem war mein Sicherheitsparanoid OpenBSD. Bei der Aktualisierung von 3.1 auf 3.2 haben sie hinzugefügt:
- Apache läuft standardmäßig chroot'd. Um dies zu deaktivieren, siehe die neue Option -u.
Die Chroot hat Apache daran gehindert, auf etwas außerhalb eines Verzeichnisses zuzugreifen, also habe ich alles in das Apache-Verzeichnis einschließlich netpbm verschoben. Alles war zugänglich und ausführbar, aber ich denke, es war immer noch in einer Art "abgesicherten Modus", weil die exec () immer 127 zurückgab.
Wie auch immer, das Ausführen von httpd mit der Option -u ging zurück zu dem weniger sicheren Startup mit nicht chroot'd apache, was es der exec () erlaubte, wieder zu arbeiten.
ohkiee guyz danke ... und ja, es könnte einige Fehler mit $ PATH geben ... aber mit gegebenem vollständigen Pfad funktioniert es:)
%code%
Nur für den Fall, dass jemand anderes dieses Problem noch hat, sehen Sie sich den Beitrag hier an:
Quote:
Ich habe das Problem gefunden. Das Problem war mein Sicherheitsparanoid OpenBSD. Bei der Aktualisierung von 3.1 auf 3.2 haben sie hinzugefügt:
- Apache läuft standardmäßig chroot'd. Um dies zu deaktivieren, siehe die neue Option -u.
Die Chroot hat Apache daran gehindert, auf etwas außerhalb eines Verzeichnisses zuzugreifen, also habe ich alles in das Apache-Verzeichnis einschließlich netpbm verschoben. Alles war zugänglich und ausführbar, aber ich denke, es war immer noch in einer Art "abgesicherten Modus", weil die exec () immer 127 zurückgab.
Wie auch immer, das Ausführen von httpd mit der Option -u ging zurück zu dem weniger sicheren Startup mit nicht chroot'd apache, was es der exec () erlaubte, wieder zu arbeiten.