13. januar 2006 - 19:53Der 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
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
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.
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).
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.
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.