exec
IT-OKTAI
- php
Hallo,
Ich habe ein PHP Script und ich kann zb
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
ohne Prob ausführen, aber
<?php
$output = shell_exec('mkdir /home/abc/test');
echo "<pre>$output</pre>";
?>
macht er nicht.
Warum?
IT-OKTAI
Hi
aber
<?php
$output = shell_exec('mkdir /home/abc/test');
echo "<pre>$output</pre>";
?>macht er nicht.
Was heißt das?
Könnte es an fehlenden Berechtigungen liegen?
off:PP
Könnte es an fehlenden Berechtigungen liegen?
Hab ich mir auch schon gedacht, aber ich habe die rechte auf 775 oder auch schon 777 gehabt und chwon root
oder was muss ich machen?
Hi!
Könnte es an fehlenden Berechtigungen liegen?
Hab ich mir auch schon gedacht, aber ich habe die rechte auf 775 oder auch schon 777 gehabt und chwon root
oder was muss ich machen?
Unter welchem Benutzer läuft Dein PHP-Script?
off:PP
Unter welchem Benutzer läuft Dein PHP-Script?
-rwxr-xr-x 1 root root 834 2009-01-22 14:29 meinscript.php
IT-OKTAI
kann mir mal bitte jmd das Zucken am Auge nehmen?
Hallo.
-rwxr-xr-x 1 root root 834 2009-01-22 14:29 meinscript.php
Das ist die Ausgabe von ls -l
. Darin steht der Besitzer der Datei.
Die Frage war aber, unter welchem Benutzer dein Script läuft. Das ist normalerweise der Benutzer des HTTP-Servers (z.B. www-data für Apache unter Debian). Beispielsweise über shell_exec('whoami');
kannst du herausfinden, wie er bei dir heißt.
Dieser Benutzer muss dann das Recht haben, im gewünschten Verzeichnis ein neues zu machen.
Servus,
Flo
whoami: nobody!
und jetzt?
whoami: nobody!
und jetzt?
Also ich bastle ein Verwaltungstool und befinde mich in /opt/lampp/htdocs/test.php und möchte alle Rechte haben um in /home/xyz/ alles anstellen zu können wie wenn ich auf der Konsole bin.
Man ist Linux kompliziert!
Ich dachte ich rotz das Script mal in ner Stunde hin und jetzt ist schon wieder VIER UHR!!!! Mannn ey...
IT-OKTAI
Hallo.
whoami: nobody!
und jetzt?
Jetzt gibst du entweder dem Benutzer nobody die Schreibrechte für das Verzeichnis, in dem du ein neues machen willst, oder machst dieses Verzeichnis für alle schreibar.
Servus,
Flo
你好 IT,
ohne Prob ausführen, aber
<?php
$output = shell_exec('mkdir /home/abc/test');
echo "<pre>$output</pre>";
?>macht er nicht.
Wie kommst du darauf? Keine Ausgabe? Oder eine Fehlermeldung? Wenn ja, welche? Existiert /home/abc/test nach dem ausführen?
Mal abgesehen davon, dass du den vollständigen Pfad zu mkdir angeben solltest (meistens /bin/mkdir), gibt mkdir auch keine Meldung raus, wenn es erfolgreich war.
再见,
克里斯蒂安