# exec() bzw system() will nicht



## DivDax (21. August 2004)

Hallo zusammen!

Ich weiß nun nicht, ob ich im richtigen Forum gelandet bin.
Falls nicht, bitte verschieben! 

Ich möchte mit einem PHP-Script die Funktion exec() oder system() nutzen,
allerdings klappt das nicht. Ich vermute, dass mit die Rechte dazu fehlen.

Kann mir jemand helfen?



Gruß,
DivDax


----------



## Fabian H (21. August 2004)

Hi,

das liegt höchstwarscheinlich daran, dass dein Hoster diese Funktionen nicht erlaubt.
(Ist also kein Fehler )

Ist aber bei vielen (billig-) Webhostingangeboten so, also ist die Chance, dass die Einstellung auf Anfrage gaendert wird, gering.


----------



## DivDax (21. August 2004)

Ich nutze weder kostenlosen, noch Billigwebspace. Ich habe meinen eigenen Server. 
Daher denke ich schon, dass dies zu machen wäre.


----------



## Fabian H (21. August 2004)

Ok, mein Fehler 

Was verstehst du unter "geht nicht"?
Gibt's ne Fehlermeldung, oder keine Aus/Rückgabe?

Und welche Software und -versionen benutz du?


----------



## DivDax (21. August 2004)

Fehlermeldungen oder so gibt's nicht.
getestet habe ich das ganze mit diesem Code:


```
system("/opt/lampp/bin/mysqldump -uroot -p**** --opt db > db.sql");
```

Ich nutze derzeit das Komplettpaket xampp2 von apachefriends.org


----------



## Fabian H (21. August 2004)

Ok, ich hab das Ganze mal mit folgendem Script getestet:

```
exec('/usr/local/mysql/bin/mysqldump -uNuinmundo -p**** --opt mysql > db.sql', $foo, $iRetVal);
print($iRetVal);
```
Wenn ich es nun per Browser aufrufe (das Script wird dann als _wwwrun_ ausgeführt), dann wird der Rückgabewert 1 zurückgegeben. Der Fehler liegt also nicht bei PHP, sondern bei _mysqldump_.

Wenn ich es aber von der Shell aus ausführe:

```
nuinmundo@schlecker:~/public_html$ php -f test.php 
0
```
Dann klappt alles.
Das Script wurde als _nuinmundo_ ausgeführt.

Ergo liegt das Problem darin, dass _mysqldump_ wohl Probleme mit dem _wwwrun_-User hat. (Vielleicht weil er keine Shell hat)


Du musst wohl auf ein PHP basierendes Backup zurückgreifen (Da solltest du bei Google was finden)


----------

