Safemode, exec(), convert
Safemode, exec(), convert
Hallo zusammen,
-> Suse 9.0, php 4.3.x ...
Ich sitze seit gestern dran im Safemode convert mit exec() auszuführen, kriege es aber nicht hin.
php.ini (Safemode ON):
safe_mode_exec_dir = /usr/bin/safemode
Dort habe ich dann convert hinterlegt.
Aufrufen tue ich das ganze via:
exec("/usr/bin/safemode/convert -size 199x283 /srv/www/htdocs/pitch/file -resize 180x180 +profile '*' /srv/www/htdocs/pitch/file");
Leider ohne jeden Erfolg oder eine Fehlermeldung, stelle ich den Safemode Off klappt es ohne Probleme.
Kann mir vieleicht jemand einen Tipp woran es liegen kann ? Müssen die Programme im safe_mode_exec_dir einen bestimmten User haben ? Oder bestimmte Rechte ?
Ich komme da einfach kein Stück vorwärts ...
Grüße an euch und Danke, Chrisi ...
-> Suse 9.0, php 4.3.x ...
Ich sitze seit gestern dran im Safemode convert mit exec() auszuführen, kriege es aber nicht hin.
php.ini (Safemode ON):
safe_mode_exec_dir = /usr/bin/safemode
Dort habe ich dann convert hinterlegt.
Aufrufen tue ich das ganze via:
exec("/usr/bin/safemode/convert -size 199x283 /srv/www/htdocs/pitch/file -resize 180x180 +profile '*' /srv/www/htdocs/pitch/file");
Leider ohne jeden Erfolg oder eine Fehlermeldung, stelle ich den Safemode Off klappt es ohne Probleme.
Kann mir vieleicht jemand einen Tipp woran es liegen kann ? Müssen die Programme im safe_mode_exec_dir einen bestimmten User haben ? Oder bestimmte Rechte ?
Ich komme da einfach kein Stück vorwärts ...
Grüße an euch und Danke, Chrisi ...
-
lord_pinhead
- Posts: 774
- Joined: 2004-04-26 15:57
Re: Safemode, exec(), convert
Standardfrage: Was sagt deine Logfile?
In php.ini:
display_errors = On
log_errors = On
error_log = /var/log/phperrors.log
eintragen, dann sollte er nen Fehler ausgeben.
In php.ini:
display_errors = On
log_errors = On
error_log = /var/log/phperrors.log
eintragen, dann sollte er nen Fehler ausgeben.
Re: Safemode, exec(), convert
Hi, danke für deine Antwort.
Meine Errors stehen auf E_ALL, es gibt aber keine Fehlermeldung in Sachen Safemode, andere Fehler werden natürlich angezeigt, also die Errors funktionieren.
Ich kann das einfach nicht verstehen, schalte ich den Safemode off, kann er convert ohne Probleme auch im Ordner /usr/bin/safemode ausführen.
Ist es on überspringt er das einfach, nehme ich in der php.ini exec_dir wieder raus kommt die Message das er wegen safemode nichts ausführen kann :) ...
Also ein Zeichen dafür das php die Einstellungen in der php.ini erkennt.
Viele Grüße, Chris
Meine Errors stehen auf E_ALL, es gibt aber keine Fehlermeldung in Sachen Safemode, andere Fehler werden natürlich angezeigt, also die Errors funktionieren.
Ich kann das einfach nicht verstehen, schalte ich den Safemode off, kann er convert ohne Probleme auch im Ordner /usr/bin/safemode ausführen.
Ist es on überspringt er das einfach, nehme ich in der php.ini exec_dir wieder raus kommt die Message das er wegen safemode nichts ausführen kann :) ...
Also ein Zeichen dafür das php die Einstellungen in der php.ini erkennt.
Viele Grüße, Chris
-
lord_pinhead
- Posts: 774
- Joined: 2004-04-26 15:57
Re: Safemode, exec(), convert
Hm, mit welchen User werden Programme ausgeführt?
Also wenn ich mich an Suse recht erinnere war es der www-data User oder? Sprich ein chown www-data /usr/bin/safemode/convert mal versuchen. Aber eigentlich kann ich mir das jetzt nicht vorstellen, es wird ja ausgeführt wenn der Safemode ausgeschaltet wurde.
Versuch mal in deiner Vhost File mal die folgenden Optionen, die überschreiben die php.ini Settings. Eigentlich stell ich alle meine Kunden so ein und lasse die php.ini relativ unangetastet :)
dann vielleicht mal exec("ls -la /var/www....."); versuchen (wenn du ls mit reingelinkt hast) zum test. Wenn das funktioniert, passt die Einstellung schonmal.
Edit: Wenn ich mich recht erinnere sollte ein phpinfo(); auch alle Settings ausgeben, vielleicht findet sich da die Lösung. Oder ein " egrep -r "safe_mode|convert|exec|error" /var/log/* " versuchen und nachsehen ob es nich irgendwo was geloggt hat. Irgendeine Ausgabe muss er schreiben.
Hab noch ein Script gefunden das dir ausgeben soll was grad aktiv ist, also versuch das mal :)
Also wenn ich mich an Suse recht erinnere war es der www-data User oder? Sprich ein chown www-data /usr/bin/safemode/convert mal versuchen. Aber eigentlich kann ich mir das jetzt nicht vorstellen, es wird ja ausgeführt wenn der Safemode ausgeschaltet wurde.
Versuch mal in deiner Vhost File mal die folgenden Optionen, die überschreiben die php.ini Settings. Eigentlich stell ich alle meine Kunden so ein und lasse die php.ini relativ unangetastet :)
Code: Select all
php_admin_value safe_mode on
php_admin_value safe_mode_exec_dir /usr/bin/safemode/
php_admin_flag session.auto_start 0
php_admin_value session.save_path /<pfad zum user>/phptmp
Edit: Wenn ich mich recht erinnere sollte ein phpinfo(); auch alle Settings ausgeben, vielleicht findet sich da die Lösung. Oder ein " egrep -r "safe_mode|convert|exec|error" /var/log/* " versuchen und nachsehen ob es nich irgendwo was geloggt hat. Irgendeine Ausgabe muss er schreiben.
Hab noch ein Script gefunden das dir ausgeben soll was grad aktiv ist, also versuch das mal :)
Code: Select all
<?php
echo '<pre>';
echo 'safe_mode = (' . ini_get('safe_mode') . ")n";
echo 'safe_mode_gid = (' . ini_get('safe_mode_gid') . ")n";
echo 'safe_mode_include_dir = (' . ini_get('safe_mode_include_dir') . ")n";
echo 'safe_mode_exec_dir = (' . ini_get('safe_mode_exec_dir') . ")n";
echo 'safe_mode_allowed_env_vars = (' . ini_get('safe_mode_allowed_env_vars') . ")n";
echo 'safe_mode_protected_env_vars = (' . ini_get('safe_mode_protected_env_vars') . ")n";
echo 'open_basedir = (' . ini_get('open_basedir') . ")n";
echo 'disable_functions = (' . ini_get('disable_functions') . ")n";
echo 'disable_classes = (' . ini_get('disable_classes') . ")n";
echo '</pre>';
?>
-
lord_pinhead
- Posts: 774
- Joined: 2004-04-26 15:57
Re: Safemode, exec(), convert
Ich hab glaub ich deinen Fehler. exec lief bei mir ebenfalls nicht an, also hab ich mal das PHP Manual durchgekuckt und du musst es mit passthru machen.
das hat bei mir geklappt, exec lief überhaupt nicht! Ist das absicht?
Code: Select all
<?
passthru("ls -la /");
?>
Re: Safemode, exec(), convert
safe_mode_exec_dir = (/srv/www/htdocs/empty/)
grrr ... kopf schüttel ... ich habe in der php.ini ganz klare Anweisung gegeben /usr/bin/safemode, aber er überschreibt das irgendwo.
Und siehe da, in der confixx_vhost direkt in den ersten 5 Zeilen:
php_admin_value safe_mode_exec_dir /srv/www/htdocs/empty/
Danke für das Script mit den Umgebungsvariablen, nun klappt es wunderbar, ich werde mir für die Zukunft merken die Einstellungen nochmal auszugeben, um auf nummer sicher zu gehen.
Die Sache mit passthru hatte ich mir auch schon angeschaut, ich hatte mir vor dem Posting hier auch alle anderen exec verwandten angeschaut und gehoft das mir passthru die Fehlermeldung spucken würde, aber auch da kam nichts.
Danke nochmal und Viele Grüße, Chris ...
grrr ... kopf schüttel ... ich habe in der php.ini ganz klare Anweisung gegeben /usr/bin/safemode, aber er überschreibt das irgendwo.
Und siehe da, in der confixx_vhost direkt in den ersten 5 Zeilen:
php_admin_value safe_mode_exec_dir /srv/www/htdocs/empty/
Danke für das Script mit den Umgebungsvariablen, nun klappt es wunderbar, ich werde mir für die Zukunft merken die Einstellungen nochmal auszugeben, um auf nummer sicher zu gehen.
Die Sache mit passthru hatte ich mir auch schon angeschaut, ich hatte mir vor dem Posting hier auch alle anderen exec verwandten angeschaut und gehoft das mir passthru die Fehlermeldung spucken würde, aber auch da kam nichts.
Danke nochmal und Viele Grüße, Chris ...
Re: Safemode, exec(), convert
Bei mir geht jetzt beides, passthru soll laut Doku die gesamte Ausgabe zurückgeben, wobei exec nur die letzte Zeile geben soll ...Lord_Pinhead wrote:das hat bei mir geklappt, exec lief überhaupt nicht! Ist das absicht?Code: Select all
<? passthru("ls -la /"); ?>
-
lord_pinhead
- Posts: 774
- Joined: 2004-04-26 15:57
Re: Safemode, exec(), convert
Dann is ja gut das alles beide klappt :) letzte möglichkeit wäre dann system(); gewesen, das ist ja in den meisten PHP Scripten eigentlich mit drin.
Re: Safemode, exec(), convert
noch eins hinterher :)
trim(nl2br(``));
Das habe ich mal irgendwo in einem php Script genutzt um convert anzusprechen, dort war es auch auch irgendwelchen gründen das einzige was angesprungen ist, bei meiner jetzigen config mit safemode wird der Dienst verweigert ...
Ist nicht weiter wichtig, aber vieleicht interessiert es dich oder jemand anderen.
Viele Grüße, Chris
trim(nl2br(``));
Das habe ich mal irgendwo in einem php Script genutzt um convert anzusprechen, dort war es auch auch irgendwelchen gründen das einzige was angesprungen ist, bei meiner jetzigen config mit safemode wird der Dienst verweigert ...
Ist nicht weiter wichtig, aber vieleicht interessiert es dich oder jemand anderen.
Viele Grüße, Chris