2017-11-18 3 views
0

Hallo Leute, ich bin Durchschnitt in Server-Konfiguration.Ich benutze PHP-Exec-Funktion, um einige Befehle in meiner Website.Aber es funktioniert nicht mehr, wenn ich PHP-FPM aktivieren . Weiß jemand, warum es dieses Problem verursacht? Im Folgenden finden Sie PHP-Funktion den BefehlWarum php exec, System und Passthrough funktioniert nicht mehr, wenn FPM aktiviert ist

$cmd="pdftk " . $pdf_to_fill . " fill_form " . $fdf_file . " output $outputfile 2>&1"; 
exec($cmd, $output, $return_var); 

Vielen Dank im Voraus für Ihre Hilfe laufen zu lassen.

Antwort

0

Dies kann ein paar Dinge sein, zuerst, versuchen Sie zu bestätigen, ob Exec aktiviert ist, ob der abgesicherte Modus aktiviert ist und ob wir uns in einer gesperrten Shell befinden.

Die ersten beiden können mit diesem Skript durchgeführt werden, finden Sie genau das, was es gibt, wenn Sie darauf zugreifen:

if(function_exists('exec')) { 
    echo '<h1>exec is available.</h1>'; 
} 
if(ini_get('safe_mode')){ 
    echo '<h1>Safe mode is on.</h1>'; 
} 

Die inhaftierten Schale ist etwas schwieriger zu erkennen, aber var_dump(scandir('/bin/')) läuft eine Anzeige geben, wenn Es enthält viel weniger Dateien als wenn Sie ls -ltr /bin über die Befehlszeile ausführen, dann befinden Sie sich in einer inhaftierten Shell.

Es kann sich auch lohnen, den vollständigen Pfad der Binärdatei pdftk zu verwenden, und wenn es immer noch nicht funktioniert, versuchen Sie, is_executable auf dem Pfad für pdftk auszuführen.

Verwandte Themen