2016-07-16 31 views
0

Ich bin eine Centos 7 Maschine, auf der ich PHP mit Apache und Slim Framework konfiguriert habe.php functions file_exits, kopieren, shell_exec funktioniert nicht auf einer Maschine, aber der gleiche Code funktioniert auf einer anderen Maschine

Der einfache Code, um zu prüfen, ob die Datei existiert und den Code in ein Verzeichnis kopiert, funktioniert auf einem der Maschinen, aber nicht auf einem anderen Rechner. Es ist wirklich komisch.

Eigentlich bin ich Zugriff auf die API über Apache, um diese Funktion auszulösen.

Funktionen wie shell_exec alaways Rückgabe 0 Kopierfunktion funktioniert auch nicht file_exists funktioniert auch nicht.

Jede Hilfe oder ein Hinweis, warum dies falsch ist oder dieses Problem debuggen.

+1

Könnte verschiedene Einstellungen von [open_basedir] (http: // php .net/manual/de/ini.core.php # ini.open-basedir) oder [safe_mode_exec_dir] (http://php.net/manual/en/ini.sect.safe-mode.php#ini.safe- mode-exec-dir) oder event [disable_functions] (http://php.net/manual/en/ini.core.php#ini.disable-functions) vielleicht? –

+0

Ich zweite Alons Punkt auf PHP-Sicherheit Einstellung der INI-Datei. Stellen Sie außerdem sicher, dass die error_reporting aktiviert ist, um alle aufgetretenen Fehler zu sehen. – jirka

+0

Ich habe versucht, es weiter zu debuggen und festgestellt, dass es für ein normales PHP-Skript funktioniert, aber wenn das gleiche Skript vom Apache (Web) aufgerufen wird, funktioniert es nicht. Checked open_basedir/disable_function ist nichts konfiguriert, also immer noch wundern, warum es nicht von Apache funktioniert – nirajkumar

Antwort

0

Vielen Dank für die Hilfe.

Problem war Dateierlaubnis Problem. Der Grund war, dass die obige Funktion, die ich ausführte, auf der Datei war. Da die Dateien unterschiedliche Berechtigungen für verschiedene Benutzer haben.

So, wenn ich die URL vom Browser traf, war es durch "Apache" Benutzer, der keine Ausführungsberechtigung für den Ordner hat, um auf die Datei zugreifen und Leseberechtigung für die Datei.

Kurz

sudo chmod + rx Datei

sudo chmod + x "Alle Verzeichnisstruktur"