exec() bzw system() will nicht

DivDax

Erfahrenes Mitglied
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
 
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.
 
Ich nutze weder kostenlosen, noch Billigwebspace. Ich habe meinen eigenen Server. ;)
Daher denke ich schon, dass dies zu machen wäre.
 
Ok, mein Fehler :p

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

Und welche Software und -versionen benutz du?
 
Fehlermeldungen oder so gibt's nicht.
getestet habe ich das ganze mit diesem Code:

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

Ich nutze derzeit das Komplettpaket xampp2 von apachefriends.org
 
Ok, ich hab das Ganze mal mit folgendem Script getestet:
PHP:
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:
Code:
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)
 

Neue Beiträge

Zurück