php und mkdir

Status
Für weitere Antworten geschlossen.
X

xbartk

Guest
hallo

warum kann ich nicht mit mkdir("/root/test"); einen ordner erstellen?
 
Zuletzt bearbeitet von einem Moderator:
Unter welchem User läuft die ganze Chose denn? Vielleicht hast du einfach nicht die Berechtigungen dafür, oder schau doch einfach mal, ob es überhaupt eine Fehlernachricht gibt.
 
Wie wäre es, wenn du mehr Infos über die Fehlermeldung/User liefern würdest?

Außerdem lerne zuerst einmal die Unix-Basics, bevor du dieses Board mit deinen minimal-kurzen Fragen missbrauchst.

Dich habe ich bereits einmal ermahnt, dass du zuerst LESEN solltest, bevor du das Board und die anderen User bemühst, für dich die Lösungen zu finden!
 
es gibt keine fehlermeldung, es funktioniert einfach nicht (return 0) und wenn ich bsp. in /tmp schreiben will das auf ugo=rwx gestellt ist, geht's auch nicht. habe gelesen man müsse safe_mode in php ausgeschaltet haben, dass ist bei mir der fall, aber es will nicht funktionieren?
 
Zuletzt bearbeitet von einem Moderator:
Kann das daran liegen, dass dein Apache chrooted ist?

Er stelle mal ein verzeichnis /var/www/tmp und setze die rechte auf 777. Dann versuch noch einmal mit PHP den Ordner in /tmp zu erstellen.
 
ich meinte nicht die '/var/www/tmp' sonder '/tmp' und was ist eigentlich chrooted?
kann sein das ich da was nicht kofniguriert habe.
 
xbartk schrieb:
kann sein das ich da was nicht kofniguriert habe.

Kann es sein, dass du noch nicht genügend über Unix weißt?


Nun, da du nicht eimal weißt, was chrooted ist, wird dieser Thread sicherlich zu einer Unix-Einführung ausarten.

Und das will ich im OpenBSD-Forum nicht sehen.

Gehe LESEN:

www.ugu.com (allgemein über Unix)

www.openbsd.org/faq (DIE Anlaufstelle wenn es um's OBSD geht)

http://de2.php.net/tut.php (viel Spaß mit PHP, hier ist das deutsche Tutorial für dich)
 
Zuletzt bearbeitet:
ich kenne unix, mir fehlen einfach noch ein paar puzzle teile, fehler sind unberechenbar.
 
xbartk schrieb:
ich kenne unix, mir fehlen einfach noch ein paar puzzle teile, fehler sind unberechenbar.

Ich will hier mir nicht über deine Kenntnisse diskutieren.

Was du von dir selber und deinem Wissen hälst, ist deine Sache.

Das OpenBSD-Forum aber ausschließlich meine und die meiner Kollegen.

O.K.?
 
Dein Apache hält /var/www für das / Verzeichnis. Wen du in php etwas in /tmp machst, dann ist das in wirklichkeit /var/www/tmp. (chroot - change root directory)

Apache ist in opebBSD 3.5 chrooted.
 
habe jetzt versucht auf /root/test (ugo=rwx) ein ordner name's 'read' zu erstellen, die funktion gab wider return 0. muss ich etwas mit chroot aktivieren?
 
> CW: Wie wäre es, wenn du mehr Infos über die Fehlermeldung/User liefern würdest?
> ipso: Kann das daran liegen, dass dein Apache chrooted ist?
> CW: Gehe LESEN
> ipso: Apache ist in opebBSD 3.5 chrooted.

Ich sehe weder von dir gepostete Fehlermeldungen noch habe ich den Eindruck, dass gewillt bist selber
zu suchen und zu *lesen*.

/var/log/httpd-error.log
error_reporting = E_ALL && display_errors = On && log_errors = On
 
OK, wenn dein httpd chrooted ist, dann vergiss einmal dein PHP Script.

Wenn der httpd chrooted ist, dann ist dein root (/) verzeichnis /var/www. Was für den httpd /bin ist für deine Shell /var/www/bin. Verstehst du das?

Mach mal folgendes. Erstelle als root das Verzeichnis /var/www/bin. Dann kopiere /bin/sh nach /var/www/bin/sh.

Wenn du jetzt wissen willst was chrooted ist, dann mach ein chroot /var/www /bin/sh.

Das Wechselt dein Root nach /var/www und startet /bin/sh (in wirklichkeit /var/www/bin/sh).

Wenn du das machst, dann wisst du wie sich dein http fühlt.
Versuch mal ein ls zu machen.
# ls
/bin/sh: ls: not found
#

Warum dass denn? Ganz einfach normalerweise ist, dein ls /bin/ls. Doch da deine Shell chrooted ist, gibt es in /bin kein ls. Wir haben nur sh nach /var/www/bin kopiert.

Tja ls gibt es nicht also mach mal ein

# echo *
bin cgi-bin conf htdocs icons lib logs misc share tmp users usr
#

Echo ist ein builtin von der Shell und kein externes Programm wie ls darum klappt das.

Mit "exit" kommst du wirde zurück zu deiner ursprünglichen Shell.

Nach einmal:
Dein PHP ist auch chrooted (/var/www). Wenn php eine befehle wie sh, mkdir, ls usw ausführen will, dann werden diese Programme nicht gefunden, das sie unterhalb von /var/www nicht existieren!

Wenn du in PHP einen Ordner /root/foo hast, dann ist das in wiklichkeit /var/www/root/foo.

Verstanden? -> man chroot
 
wie heist der befehl wenn ich '/root/test' erstellen will, habe soweit ich verstanten versucht mit chroot /var/www /root/test hat aber nicht funktioniert?
 
Das ist auf jeden Fall das LETZTE MAL, dass ich hier Leute ermahnen muss, sich mit dem Lesen/Lernen zu beschäftigen.

Es ist einfach UNFAIR, wenn andere (hier: ipso) sich die Finger wund schreiben und der initiale Poster nur noch mehr Fragen stellt bzw. erst gar nicht GENAU durchliest und VERSTEHT, was ihm andere sagen wollen.

Ab jetzt, wird nur noch ermahnt und der Thread geschlossen.

Wir sind keine erzieherische Anstalt für Netiquette und auch kein Internet-Samariter e.V
 
ich brauche hilfe, dafür ist ein forum ja da um gegenseitig zu helfen.
 
xbartk schrieb:
ich brauche hilfe, dafür ist ein forum ja da um gegenseitig zu helfen.

O.K., jetzt reicht's!

Wenn du ständiges Herumfragen und Übergehen der Ratschläge als "Hilfesuche" bezeichnest, dann hast du hier nichts verloren!

Ich habe keinen Bedarf auf eine Diskussion mit dir über "Gegenseitige Hilfe".

Thread geschlossen!

P.S. und versuche erst gar nicht einen neuen zum selben Thema aufzumachen.

Gehe LESEN!
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben