Door
Paul Weiss
op 28-08-2023 18:02
gewijzigd op 28-08-2023 18:04
3.225 views
Hoi. Ik ben bezig met een proefopzetje waarbij ik via een form een naam kan kiezen voor het aanmaken van een directory. Dat gedeelte gaat goed. Vervolgens wil ik echter met behulp van de copy functie hierin een bestand plaatsen met de naam index.php. Echter het wil niet lukken omdat de doelmap niet wordt herkend. als ik een echo uitvoer van $target dan wordt het pad wel goed weergegeven. ik heb totaal geen idee wat er fout gaat.
heb het al gevonden. bij het aanmaken van de directory moet ik de rechten aanpassen.
if ( !file_exists($dir) ) {
mkdir ($dir, 0744);
}
nu nog rechten aanpassen voor de bestanden in deze map
[size=xsmall]Toevoeging op 29/08/2023 14:58:41:[/size]
is nu allemaal gelukt. het hele probleem waren dus de rechten van de aangemaakte directory.
Bij een directory die ik vooraf via ftp zelf had aangemaakt stonden de rechten dus al gelijk goed.
Weer wat geleerd. topic mag als het aan mij ligt worden gesloten. Iedereen nog hartelijk dank voor de hulp en advies.
Het kan zijn dat 777 niet geaccepteerd werd omdat dit gevaarlijk is. Je wilt NOOIT ALLE rechten geven voor jan en alleman.
755 is overigens voldoende voor de rechten. Misschien werd die wel toegekend als je de parameter voor de chmod-rechten in mkdir() achterwege liet. Elke server is immers anders geconfigureerd.
Die 0 geeft hier aan dat het om ocale getallen gaat. (een tal-stelsel dat maar tot 7 kan tellen, zoals het meer gebruikelijke decimale stelsel 9 als hoogste heeft.)
Dat verklaart meteen waarom 7 voor alle rechten staat: alle bitjes in de byte staan aan.
111 in Binair staat voor 7 (1*2*2 + 1*2 + 1)
[size=xsmall]Toevoeging op 29/08/2023 21:07:42:[/size]
maarhe, zet altijd die error reporting aan. Ook voor simpele scriptjes. Je wordt dan meteen om de oren geslagen met foutmeldingen en warnings, ipv je blindstaren op "waarom werkt het toch niet?"
He Ivo. Bedankt voor de input. Je hebt helemaal gelijk. error report altijd aanzetten. Moet een gewoonte worden. Loop inmiddels door dit alles wel tegen een ander probleem aan. enkele direcory's aangemaakt met 755 kan ik niet meer verwijderen, ook niet vanuit de control panel op de server. heel vreemd. als ik 0755 gebruik wel. wat is het verschil!!
Dit artikel gaat overigens niet alleen over het pad naar /var/www/, maar in het algemeen over alles. Het feit dat Paul (0)777 gebruikte, en alsnog een 'permission denied' kreeg, lijkt mij een beveiligingsmechanisme. Misschien SElinux? En maar goed dat dit draait.
[size=xsmall]Toevoeging op 29/08/2023 22:43:36:[/size]
Paul Weiss op 29/08/2023 22:39:31
He Ivo. Bedankt voor de input. Je hebt helemaal gelijk. error report altijd aanzetten. Moet een gewoonte worden. Loop inmiddels door dit alles wel tegen een ander probleem aan. enkele direcory's aangemaakt met 755 kan ik niet meer verwijderen, ook niet vanuit de control panel op de server. heel vreemd. als ik 0755 gebruik wel. wat is het verschil!!
Ik vermoed een ownership verhaal. Zie mijn vorige stukje script om te zien wie de owners zijn van een bestand, en mogelijk werkt een map ook.