Avatar billede jjdk Nybegynder
15. november 2006 - 23:22 Der er 7 kommentarer og
1 løsning

Autoopret af mappe og ændring af rettigheder

Hej.
Jeg har et foto-galleri script, som selv genererer thumbnails af foto-filerne. Disse thumbnails "smides" i en ny undermappe. Denne mappe er jeg nødt til at oprette manuelt via FTP og derefter ændre rettighederne.
Kan det lade sig gøre via PHP-kode, at oprette mappen og ændre rettighederne, således man ikke skal i gang med manuelt arbejde?
Avatar billede miqe Nybegynder
15. november 2006 - 23:47 #1
mkdir("/path/to/my/dir", 0700)
eller
mkdir("dir", 0700)
eller
mkdir("../dir", 0700)
eller ...

Dermed har ejeren (serverens bruger) læse, skrive og kørsels-rettigheder til mappen.
Du kan læse mere om funktionen hér: http://dk.php.net/manual/da/function.mkdir.php
Avatar billede jjdk Nybegynder
16. november 2006 - 00:02 #2
Jeg har nu slettet mappen og indsat koden [mkdir("thumbnails",0700);]
Jeg får denne melding: "Permission denied" Se fx. http://www.vardeborg.dk/fdf/fotoarkiv/daneborg2004/1lordag/fotothumb.php
Avatar billede jjdk Nybegynder
16. november 2006 - 00:09 #3
Den mappe, hvor jeg prøver at oprette en undermappe i, har jeg lige manuelt ændret rettighederne på. Så virker koden til oprettelse af undermappen, men ikke helt alligevel. Jeg ser 2 ting:
1. hvis mappen er oprettet i forvejen, giver det fejl (hvordan tjekker man for, om mappen eksisterer.
2. jeg vil jo fortsat gerne undgå, at jeg skal ændre rettighederne manuelt. Er jeg nødt til at gøre det manuelt?
Avatar billede miqe Nybegynder
16. november 2006 - 01:13 #4
Dit fotoalbums rodmappe "fotoarkiv/" skal du sætte rettigheder manuelt, så webserveren kan få lov til at læse, skrive og køre (r,w,x: 7).
De samme rettigheder skal du sørge for at undermapperne får, når de bliver genereret med mkdir().
Så er guld-spørgsmålet bare hvilken bruger og gruppe webserveren kører som og om det er samme bruger og gruppe, som du er logget på med via ftp?
Vis der er forskel skal du muligvis enten bruge .htacces (for apache) eller give rettigheder med rund hånd, der så kan udnyttes af gud og hver mand.
Avatar billede jjdk Nybegynder
16. november 2006 - 07:31 #5
OK - kunne du også bidrage med koden:
Hvis undermappe eksisterer, så skal den ikke oprettes.
Avatar billede miqe Nybegynder
17. november 2006 - 15:02 #6
if(!is_dir($dirnavn))
  mkdir($dirnavn, 0770); //Vis det ikke eksisterer oprettes det med alle rettigheder til ejer og gruppe.
Vis Apacheserveren kører som en anden ejer og gruppe end dem du kan se via ftp, kan du ændre 0770 til 0777. Dette kan dog udgøre en lille sikkerhedsrisiko, vis man ikke er forsigtig. Jeg er desværre ikke den store ekspert i brugerretigheder og sikkerhed og kender pt. desværre ikke den optimale løsning.
Afhængig af webhotellets serveropsætning, kan der så vidt jeg ved være mulighed for at fortælle Apache, at den skal køre som en bestemt bruger, via en .htaccess fil og benytte brugerretigheden 0770. Dette har jeg dog ikke afprøvet.
Avatar billede jjdk Nybegynder
17. november 2006 - 20:32 #7
Tak for hjælpen. Det virker nu. ;)
Avatar billede miqe Nybegynder
18. november 2006 - 19:38 #8
Lækkert!
Tak for points.
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