mkdir funktioniert nicht

iAZ

Mitglied
Hallo,
hab ein Problem:
wenn ich
PHP:
mkdir("ordner");
mache kommt:
Warning: mkdir() [function.mkdir]: Keine Berechtigung in /opt/lampp/htdocs/test.php on line 19
Welche berechtigungen muss ich für den Ordner setzen hab mit verschiedenen chmod probiert klappt nicht

Hab Linux OpenSuse 10.3+ Xampp (oder LAMPP? :) :) )

Danke im Vorraus
 
der Ordner braucht 7er rechte auf dem User der versucht den Ordner zu erstellen. Da es zu der Meldung kommt läuft PHP sicher auf einem allgemeinen User.

Also müsstest du 777 Rechte verteilen, was allerdings auf dem Hauptordner htdocs nicht zu empfehlen ist. Erstelle hier lieber einen Unterordner und gebe diesem die Rechte. und erstelle dann per
PHP:
mkdir('unterordner/ordner');
dein Verzeichniss
 
Ich nehme an Apache (und somit im Normalfall auch PHP) wird bei dir als User www-data ausgeführt. Das kannst du z. B. überprüfen, in dem du in der Konsole "ps aux|grep apache" ausführst.
Du könntest auch einfach in der Datei "/etc/apache2/envvars" nachschauen.
In beiden Fällen solltest du recht einfach den User und die Gruppe erkennen.

Wenn du deinem Skript und dem Ordner, in dem du den Unterordner erstellen willst, nun den selben User/Gruppe zuweist, sollte es ohne Probleme funktionieren.

Und am Rande erwähnt: Die Rechte 777 (jeder darf schreiben,lesen und ausführen) sind etwas übertrieben, 666 (jeder darf schreiben und lesen, jedoch nicht ausführen) sollten vollkommen ausreichen.
 
Nein - um untergeordnete Dateien (Verzeichnisse) mit zu ändern, musst Du das Ganze mit -R (für rekursiv) ausführen. Siehe auch:


Code:
chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
  or:  chmod [OPTION]... OCTAL-MODE FILE...
  or:  chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.

  -c, --changes           like verbose but report only when a change is made
      --no-preserve-root  do not treat `/' specially (the default)
      --preserve-root     fail to operate recursively on `/'
  -f, --silent, --quiet   suppress most error messages
  -v, --verbose           output a diagnostic for every file processed
      --reference=RFILE   use RFILE's mode instead of MODE values
  -R, --recursive         change files and directories recursively
      --help     display this help and exit
      --version  output version information and exit

Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.
 
Zurück