You are not logged in.

  • Login

1

Thursday, September 7th 2006, 5:57pm

Safemode - shell_exec("")

Hi @ all

ich hab da ein Problem

ich hab mir eine php datei erstellt mit folgendem Inhalt

Quoted


<?php
shell_exec("pub start")
?>


die datei pub liegt im selben ordner wie pub.php

wenn ich die Seite per Browser aufrufe bekomme ich

Quoted


Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /srv/www/web1/html/server/pub.php on line 2


was muss ich tun damit es funzt ??

gruss

Samy

2

Thursday, September 7th 2006, 6:58pm

wenn es sich nicht gerade um deinen eigenen server handelt, hast du keine chance

ansonsten musst du den safe_mode deaktivieren
Wie das in etwa geht habe ich hier im Wiki kurz angerissen
PHP Safemode deaktivieren

3

Thursday, September 7th 2006, 7:10pm

Jo hab den Safe Mod im Virtual Vhost deaktiviert :-)
aber er führt den Process nicht aus :-/

Ich bekomme zwar eine Asugabe auf der Website, das der Prozess gestartet ist,
aber er ist nicht gestartet. In der Console über top,
zeigt er den Prozess also nicht an :-/
Woran kann das liegen ?



Greetings

Samysmurf

4

Friday, September 8th 2006, 12:32am

So ich hab ma noch ein bissel gestöbert und meine

php datei geändert

Quoted


<?php
system("/srv/www/web1/html/server/pub start");
?>


so sieht sie jetzt aus :-)

wenn ich sie nun aufrufe, dann wird der Prozess kurz gestartet und im selben moment
ist sie wieder weg :-/, also wenn wenn das PHP script fertig durchgelaufen ist und "stirbt", dann "stirbt" auch der Prozess pub

welchen Befehl mus der php datei noch verpassen, damit der prozess weiter läuft ?

Gruss

Samy

5

Friday, September 8th 2006, 12:16pm

Wie lange soll das Programm den laufen?
Möglicherweise hilft dir eine Pipe, dann wartet PHP auf jeden Fall auf eine Ausgabe des Programms:
http://de2.php.net/proc_open

LG
fitti

6

Friday, September 8th 2006, 4:29pm

vielleicht reicht auch ein kaufmännisches und am ende (damit starten programme im hintergrund)

Bash

1
system("/srv/www/web1/html/server/pub start &");

7

Friday, September 8th 2006, 5:04pm

Bash

1
system("/srv/www/web1/html/server/pub start &");



funzt leider auch nicht :-/

@ fitti70

das programm soll unbegrenzt weiter laufen, bis es wieder mit
z.B.

Bash

1
system("/srv/www/web1/html/server/pub stop");


beendet wird .


Gruss

Samy

8

Friday, September 8th 2006, 6:11pm

Quoted from ""samysmurf""



@ fitti70

das programm soll unbegrenzt weiter laufen, bis es wieder mit
z.B.

Bash

1
system("/srv/www/web1/html/server/pub stop");


beendet wird .


Gruss

Samy


Hm... für solche Fälle ist doch exec() gedacht.
Wenn's damit auch nicht klappt, müsstest du noch mal deine Servereinstellungen überprüfen.
Finden sich in den Logdateien Hinweise?
Ich würde mal die Fehlerlogs von Apache, syslog und suexec durchsuchen.

Grüße,
Stephan

9

Friday, September 8th 2006, 6:28pm

Vielleicht sollte man die Ausgabe auch vorsorglich in den Datenhimmel schicken und zum Beispiel die Prozess-ID ausgeben?

PHP Quellcode

1
2
3
4
<?
$pid=exec("/srv/www/web1/html/server/pub start > /dev/null & echo \$!");
echo "Script läuft als Prozess ".$pid;
?>

Social bookmarks