Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Zugriffprobleme nkdir PHP

Hallo zusammen,

Ich habe mir vor einiger Zeit mal ein Fotoalbum erstellt. Wie das dann halt so ist, funktioniert das im Xampp wunderbar. Die ersten Probleme kommen dann auf dem Webspace im Netz, weil man diesen nicht unbedingt selbst konfigurieren kann. Am Anfang tat alles wunderbar. Jetzt wollte ich das Fotoalbum auf einem anderen Webspace nutzen und es klappt nichts mehr.

Mein Fotoalbum startet mit dem Anlegen einer Kategorie und einem Ordner dafür (Datenbanktechnisch lasse ich bei den Erklärungen mal raus, da es keine Rolle spielt). Danach wird ein Unterordner für die Thumbnails erstellt. So wenn ich bis hierhin erstmal wieder komme, bin ich schon zufrieden  ;)

Ich habe ein Rechte-Problem und da mal vorab: Ich verstehe das mit den Rechten alles wohl, aber halt nicht, was ich falsch mache.

Mein Code sieht an dieser Stelle folgendermaßen aus:

$ordner = $_POST["ordner"];
$erstelleOrdner = mkdir("fotos/$ordner", 0777);
sleep(1);
$erstelleThumb = mkdir("fotos/$ordner/thumb", 0777);

Der Ordner fotos hat natürlich volle Rechte (777).

So mein erster Versuch führte zu folgendem:

 
Zitat

Warning: mkdir() [function.mkdir]: SAFE MODE Restriction in effect. The script whose uid is 641 is not allowed to access /srv/www/web5/html/kapelle/fotos/test owned by uid 30 in /srv/www/web5/html/kapelle/fotoalbum/index.php on line 77


Okay die Fehlermeldung verstehe ich so, dass das Ververzeichnis test von user 30 ist und user 641 drauf schreiben will. Die unterschiedlichen User kommen vermutlich dadurch, dass fotos und natürlich sämtliche PHP-Dateien über FTP hochgeladen wurden und der Ordner test durch einen PHP Script angelegt wurde. Okay könnte ich ja noch mit leben, aber da ich die Rechte auf 777 gestellt habe, haben auch alle User Schreibrechte und somit auch eigentlich user 641. Naja laut Fehlermeldung aber offentsichtlich nicht.

Dann habe ich im FTP geschaut und sehe verwundert, dass der Ordner tatsächlich nur die Schreibrechte 755 hat und dadurch nicht jeder User schreiben darf. Da kommen meine Fragen:

1. wie kann das sein? Ich sage doch im mkdir Befehl, dass sie 777 sein sollen. Ich habe auch mal versucht mit chmod die Rechte zu ändern, bringt auch nichts, sie bleiben auf 777.

2. Kann man das irgendwie/irgendwo im PHP einstellen? Dann könnte ich ja mal beim Anbieter fragen. Das dürfte ihm ja eigentlich egal sein, da ich es ja per ftp auch ändern kann. Natürlich nicht gleich den Safe-Mode austellen...

Ich habe natürlich auch schon gegoogelt und dort auch schon einige Male meine Fehlermeldung gelesen. Allerdings sind die Fragen in den anderen Foren nie abschließen beantwortet, sondern immer nur der Grund genannt, den ich ja bereits verstehe und oben auch geschildert habe.

Auf einem anderen Webspace funktioniert es auch, da gibt es dann aber keine unterschiedlichen User für ftp und php (wwwuser) glaube ich.

Vielen Dank schonmal
der_webi

Antworten zu Zugriffprobleme nkdir PHP:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

 

Zitat
Natürlich nicht gleich den Safe-Mode austellen... 
.Aber ja doch. Offensichtlich ist das das einzige Hemmnis und der wahrscheinliche Unterschied zu dem Webspace, auf dem das Script problemlos läuft. Also je nach Möglichkeit mittels PHP.ini oder .htaccess abschalten. Macht bei sauberen Scripten auch keinen Unterschied hinsichtlich der Serversicherheit.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

safe mode ist quasi eine kindersicherung für alte oder super böswillig gebaute scripte. erlaubt z.b. dem admin (root) ordner festzulegen die eingebunden werden können, klassen sowie funktionen zu sperren die er so nicht haben möchte etc.

alternative dazu wäre, via ftp funktionen mit php deine ordner anzulegen. das würde klappen aber ist halt auch wieder ein sicherheitsrisiko.

wenn auf safe mode bestehst (ich gebe aber pwt vollkommen recht) könntestübrigens auch  händerisch ~ 100 (je nach gefühlten kategorien) durchnumerierte ordner anlegen, denen die erforderlichen rechte geben und danach halt datenbankmässig mit ids arbeiten. (wenns knapp wird kannst dich ja via mail / sms benachrichtigen lassen)

übrigens mit dem update auf php6 ist safe mode sowieso futsch. mag safe mode selber nicht; aber da bemängelt hattest dass bisher kein thread zu ende geführt worden ist, wollte ich wenigstens ein paar alternativen in den raum werfen. (sehr schönes posting vom to übrigens, könnte man lehrbuchmässig festpinnen^^)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

1. wie kann das sein? Ich sage doch im mkdir Befehl, dass sie 777 sein sollen. Ich habe auch mal versucht mit chmod die Rechte zu ändern, bringt auch nichts, sie bleiben auf 777.

Du meinst wahrscheinlich, dass sie auf 755 bleiben. Das ist ja auch richtig so! Stell Dir vor, ein Besucher kommt an Deine Haustür und stellt an dem (elektronischen) Schloss ein, dass er ab sofort
volle Zugangsrechte zu Deinem Haus hat.
Hier muss derjenige, der die Rechte an dem Ordner hat, die Berechtigung umstellen. Und das ist wohl der FTP-User. 766 reicht übrigens. Schließlich willst Du ja keine ausführbaren Dateien auf dem Server starten.
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

HI

Danke an alle. Ich hab mal eine Mail zum Anbietenr geschrieben mit der Bitte den Safe mode bei mir zu deaktivieren und ggf. PHP zu upgraden. Vielleicht funktioniert es ja dann...

@strough
Den Workaround hatte ich auch schon in Erwägung gezogen. Ich hatte auch noch die Idee alle Fotos in einen Ordner und dann ggf. die Kategorie voranstellen... Soviele werden es vermutlich nicht...


Gruß
der_webi 

« Letzte Änderung: 23.02.11, 18:06:47 von der_webi »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Ich hab mal eine Mail zum Anbietenr geschrieben mit der Bitte den Safe mode bei mir zu deaktivieren und ggf. PHP zu upgraden. Vielleicht funktioniert es ja dann... 

Ich denke, der Anbieter wird Dir entweder nen Vogel zeigen oder Dir ein neueres Hostingpaket anbieten, sofern er denn ein Hostingpaket mit aktuellerem PHP anbietet.

So ein PHP-Upgrade macht man nicht von heute auf morgen auf einem Server, wo 100 Kunden drauf liegen. Diese 100 Kunden müssten alle ihre Scripte anpassen (Gut, manche Scripte funktionieren wahrscheinlich einfach weiter. Manch andere aber eben nicht). Da kann der Hoster nicht einfach hingehen und sagen "So, morgen ist hier PHP 5.3.5 angesagt. Seht zu, wie ihr damit zurechtkommt."

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Das habe ich natürlich schon nachgechaut. Der Anbieter bietet PHP5 an, ich habe allerdings noch PHP4. Vielleicht kann er micht dann einfach "umschieben".

Aber das muss doch auch irgendwie möglich sein oder? wenn ich mich recht erinnere, konnte ich bei einem Kumpel, der bei 1und1 war, bei der Konfiguration sogar angeben, ob ich PHP4.x oder PHP5.x möchte.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo,
Habe gerade Antwort bekommen.

Ein Umzug ist möglich für 25 Euro. Ich glaube ich lasse das aber und nehme mir einen Workaround vor und lager das eventuell auf den anderen Webspace aus...

Gruß
der_webi


« 2 Klick?HTML - Onclick Bedingung »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Zugriffszeit
In Milisekunden angegebene Zeit, die das Speichermedium zum Erreichen der gesuchten Daten braucht. Die Zeit ist abhängig vom technischen Verfahren des Mediums sowie ...

Reaktionszeit
In der Elektronik versteht man unter der Reaktionszeit die Zeit, die ein Flachbildschirm benötigt, um die Farbe und die Helligkeit eines Bildpunktes zu ändern. ...

Webspace
Webspace, zu Deutsch: Netzplatz, ist ein Speicherplatz, der auf einem Webserver reserviert wird. Dieser wird dann genutzt um dort die Webseite zu speichern. Diese Online-...