PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : exec arbeitet, tut aber in Wirklichkeits nichts



comrad
05-12-2003, 10:55
Hallo

für mein holaCMS möchte ich einen Installer bereitstellen. Dieser benutzt das Tool "tar" um das Archiv zu entpacken.

Nun wird das Archiv entpackt (wie der Output auf der Seite zeigt), aber das Verzeichnis existiert nicht. Ich habe auch nachgesehen, ob er es irgendwo anders (wie z.b /tmp oder /var/cache/www) installiert hat, find hat es auch nicht gefunden.
Die PHP-Hilfe hat mich auch nicht weitergebracht, da von so einem möglichen Verhalten nirgendwo gesprochen wurde.

Hier der Code:



<?php
echo "<h2>holaCMS-Installer</h2>";

if (file_exists("/bin/tar"))
{
echo "Tar existiert. Wir können probieren das Archiv zu entpacken.";
$output = array();
exec("/bin/tar xfvz holaCMS-1.4.0-RC8a.tar.gz", $output);
echo "<br><br>Ausgabe der Installationsroutine:<br><br>";

echo "<pre>";
foreach($output as $item)
{
echo "$item<br>";
}
echo "</pre>";
}
else
{
echo "Auf diesem System ist das Systemprogramm <b>tar</b> nicht installiert.<br>";
echo "Die Installation kann deswegen nicht ausgeführt werden.";
}
?>


Vielleicht hat ja jemand eine Idee.

viele Grüsse,
comrad

offe
06-12-2003, 11:04
Hallo,
konnte den Fehler reproduzieren. Ich hatte keine PHP-Schreibrechte in dem Verzeichnis. Nach einem chmod 777 hat es geklappt.

Offe

comrad
06-12-2003, 21:43
hi

danke für die Hilfe! Ich werde es ausprobieren. Interessant finde ich nur, dass kein Fehler irgendwie gemeldet wurde.

Grüsse,
comrad

Stanislaus
08-12-2003, 13:10
Original geschrieben von comrad
... Interessant finde ich nur, dass kein Fehler irgendwie gemeldet wurde.

Fehler landen nicht im stdout daher musst Du die Fehlerausgabe einfach umbiegen.
Einfach ein "2>&1" an das Ende des befehls hängen also:

exec("/bin/tar xfvz holaCMS-1.4.0-RC8a.tar.gz 2>&1", $output);

Bis neulich ...