Avatar billede drbean Nybegynder
13. januar 2006 - 19:53 Der er 13 kommentarer og
1 løsning

Fejl ved brug af mkdir (Safe Mode)

Hej...

Jeg har et domain hos surftown. Igår sad jeg og legede med et upload script og de fungeret fint. Idag virker det bare ikke.

Jeg prøver at oprette en mappe, i en mappe jeg har oprettet via et PHP script. Får denne fejl:
Warning: mkdir(): SAFE MODE Restriction in effect. The script whose uid/gid is 143907/143907 is not allowed to access /xxx/xxx/xxx/xxx/xxx.com/path/path/path owned by uid/gid 398/398

Jeg har siddet og leget lidt i deres web interface med noget indeks på  mapper. Men det kan da ikke være det der har lavet fejlen. Nogen forslag
Avatar billede nizo Nybegynder
13. januar 2006 - 20:03 #1
prøv at chmod mappen til 777
Avatar billede drbean Nybegynder
13. januar 2006 - 20:06 #2
Mappen er ændret til 0777.

mkdir("path");
chmod("path",0777);
Avatar billede nizo Nybegynder
13. januar 2006 - 20:11 #3
Den mappe scriptet bliver afviklet i ;)
Avatar billede drbean Nybegynder
13. januar 2006 - 20:13 #4
samme fejl
Avatar billede whatever Nybegynder
13. januar 2006 - 20:13 #5
Det burde ikke have nogen effekt at chmodde mappen, da mkdir som standard sætter mappen til 0777.
Avatar billede drbean Nybegynder
13. januar 2006 - 20:14 #6
Det der undre mig i det her tilfælde, er at det virkede fint i går inde jeg gik i seng. Men nu...
Avatar billede nizo Nybegynder
13. januar 2006 - 20:16 #7
whatever:
Nogle webhoteller har en streng security line, saa hvis du skal uploade/redigere filer/stier paa serveren skal den mappe som scriptet bliver afviklet i, være chmoddet til 777.
Fx er det tilfældet paa mediatemple.net
Avatar billede whatever Nybegynder
13. januar 2006 - 20:16 #8
Problemet er at php-scriptet der forsøger, at oprette under mappen er en anden bruger, end den der oprettede/ejer mappen niveauet over. Og dette kan du umiddelbart ikke lavet. Problemet skyldes i bund og grund, at php kører i safe mode.
Avatar billede nizo Nybegynder
13. januar 2006 - 20:17 #9
drbean:
Prøv evt. at skriv til dit wehotels support ..
Avatar billede whatever Nybegynder
13. januar 2006 - 20:18 #10
Muligvis, men som skrevet så sætter mkdir automatisk mappen til 0777. Og derfor burde det ikke være nødvendigt, at køre chmod på mappen bag efter. Hvis endelig ville gøre det, kunne man skrive mkdir($path,0777).
Avatar billede drbean Nybegynder
13. januar 2006 - 20:18 #11
det vil jeg prøve... tak for forsøget... smid et svar hvis i vil have lidt point
Avatar billede whatever Nybegynder
13. januar 2006 - 20:29 #12
Jeg fandt dette i php-manualen, hvilket forklarer problemet:

Beware that when in safe mode, mkdir creates folders with apache's UID, though the files you create in them are of your script's UID (usually the same as your FTP uid).

What this means is that if you create a folder, you won't be able to remove it, nor to remove any of the files you've created in it (because those operations require the UID to be the same).

En anden kommentar fra php-manualen:

When safe_mode is enabled, and you create a directory via mkdir, you can't create a second inside the first because the first folder's user is that one of the webserver and not that one of the script. This is dumb and very annoying :(

Jeg har selv bøvlet med problemerne i filhåndteringen i en cms-løsning, og endte med at lade php oprette mapperne via ftp extensionen, når systemet kørte på et webhotel med safe_mode slået til.
Avatar billede drbean Nybegynder
13. januar 2006 - 20:34 #13
smid et svar whatever... det forklare hvad der er sket... Tror jeg hiver fat i surftown, for det virkede igår... de må have lavet noget ged i den
Avatar billede whatever Nybegynder
13. januar 2006 - 20:35 #14
Et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester