shell_exec() has been disabled for security reasons
Alexander Lohse
- php
Hi,
ich habe hier einen ganz merkwürdigen Fall wo shell_exec mit der oben genannten Fehlermeldung den Dienst quittert ... ABER: safe_mode ist definitiv aus und auch in den "disable_functions" ist shell_exec nicht eingetragen.
Hat irgendjemand dazu Idee?
Das ist mit PHP 5.1.6 auf einem Plesk gesteuerten System.
Selbst der Support von unserem Provider ist im Moment ratlos!
Jegliche Anregung/Idee ist sehr willkommen!
Viele Grüße,
Alex
Hallo Alex,
ich habe hier einen ganz merkwürdigen Fall wo shell_exec mit der oben genannten Fehlermeldung den Dienst quittert ... ABER: safe_mode ist definitiv aus und auch in den "disable_functions" ist shell_exec nicht eingetragen.
Eventuell ist Suhosin installiert und die Einstellung suhosin.executor.func.blacklist enthält shell_exec?
Viele Grüße,
Christian
Hallo Alex,
ich habe hier einen ganz merkwürdigen Fall wo shell_exec mit der oben genannten Fehlermeldung den Dienst quittert ... ABER: safe_mode ist definitiv aus und auch in den "disable_functions" ist shell_exec nicht eingetragen.
Eventuell ist Suhosin installiert und die Einstellung suhosin.executor.func.blacklist enthält shell_exec?
Hi Christian,
suhosin würde sich über phpinfo(); ausweisen, oder?
Soweit ich weiß, ist suhosin nicht installiert.
Grüße,
Alex
Hi!
suhosin würde sich über phpinfo(); ausweisen, oder?
Ja.
Wenn's das nicht ist: Wäre es vielleicht möglich, die phpinfo mal zu sehen? (meinetwegen als statische HTML-Seite abgespeichert, bei der Du irgendwelche Pfadangaben gelöscht hast, falls Du da Sicherheitsbedenken hast)
Viele Grüße,
Christian
Hallo,
Wenn's das nicht ist: Wäre es vielleicht möglich, die phpinfo mal zu sehen? (meinetwegen als statische HTML-Seite abgespeichert, bei der Du irgendwelche Pfadangaben gelöscht hast, falls Du da Sicherheitsbedenken hast)
Zur Info an alle: Ich hab den Link per Mail zugeschickt bekommen und habe mir das angesehen.
Ich kann das mit der gleichen PHP-Version mit fast den gleichen configure-Optionen mit den gleichen ini-Einstellungen NICHT nachvollziehen. Bei mir funktioniert shell_exec. Und die von Dir beschriebene Meldung bekomme ich wirklich nur, wenn shell_exec in disable_functions eingetragen ist.
Könntest Du vielleicht mal an der Stelle, an der die Fehlermeldung auftritt einfach ein var_dump (ini_get ('safe_mode')); und ein var_dump (ini_get ('disable_functions')); stellen? Und sehen was die Einstellungen an der konkreten Stelle für einen Wert haben?
Viele Grüße,
Christian
echo $begrüßung;
Könntest Du vielleicht mal an der Stelle, an der die Fehlermeldung auftritt einfach ein var_dump (ini_get ('safe_mode')); und ein var_dump (ini_get ('disable_functions')); stellen? Und sehen was die Einstellungen an der konkreten Stelle für einen Wert haben?
disable_functions ist "php.ini only" und safe_mode ist PHP_INI_SYSTEM (php.ini or httpd.conf). Das heißt, dass diese Direktiven für die gesamte PHP-Instanz gelten. Wenn phpinfo() sie in einem bestimmten Zustand anzeigt, betrifft das also alle anderen Scripte gleichermaßen. Es sei denn man hat unterschiedliche Instanzen laufen.
Bei PHP als CGI lässt sich ja eine php.ini in das Script-Verzeichnis legen, die eine globale php.ini komplett überschreibt. Hier hat man dann den Fall der unterschiedlich konfigurierten Instanzen, wenn die Scripte (phpinfo() und das andere) in verschiedenen Verzeichnissen liegen.
echo "$verabschiedung $name";
Hallo dedlfix,
Könntest Du vielleicht mal an der Stelle, an der die Fehlermeldung auftritt einfach ein var_dump (ini_get ('safe_mode')); und ein var_dump (ini_get ('disable_functions')); stellen? Und sehen was die Einstellungen an der konkreten Stelle für einen Wert haben?
disable_functions ist "php.ini only" und safe_mode ist PHP_INI_SYSTEM (php.ini or httpd.conf). Das heißt, dass diese Direktiven für die gesamte PHP-Instanz gelten. Wenn phpinfo() sie in einem bestimmten Zustand anzeigt, betrifft das also alle anderen Scripte gleichermaßen. Es sei denn man hat unterschiedliche Instanzen laufen.
Ja ich weiß. Ich wollte ja darauf hinaus, dass da evtl. aus irgend einem Grund eine andere Konfiguation gilt (anderer Vhost oder so).
Bei PHP als CGI lässt sich ja eine php.ini in das Script-Verzeichnis legen, die eine globale php.ini komplett überschreibt.
Ist hier aber nicht der Fall, ist als Apache 2 Handler eingerichtet (ok, kannst Du nicht wissen ;-))
Viele Grüße,
Christian
Hallo Leute,
ich habe soeben die Nachricht vom Support bekommen, sie hätten da was umkonfiguriert und jetzt würde es funktionieren ... tut es auch.
Ich warte jetzt noch auf einen Hinweis, was für eine mysteriöse Konfiguration das wohl gewesen ist.
Sobald ich Antwort habe, melde ich mich wieder.
Viele Grüße und Dank für's mit-"Hirnen" soweit,
Alex
das Problem lag darin, daß eine global gesetze PHP-Einstellung nicht mit =
einem lokalen Wert überschrieben werden konnte, obwohl eine phpinfo() Seite anzeigte, daß der lokale Wert entsprechend gesetzt wäre. Die lokale Einstellung hatte schlicht und einfach keine Wirkung.