Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Uploaden met Apache  (gelezen 413 keer)

Markkaz

  • Gast
Uploaden met Apache
« Gepost op: 2008/08/27, 17:10:39 »
Ik zal beginnen met aangeven dat ik dit weekend Ubuntu geinstalleerd heb op mijn laptop en dat ik dus niet meer ervaring met Linux heb dan die paar dagen tot nu. Al met al heb ik geen problemen ondervonden die niet terug te vinden waren op het internet tot nu.

Ik heb een webserver geinstalleerd in combinatie met PHP5. Nu probeer ik via PHP een bestand te uploaden. Deze komt in /var/www/map terecht. Het uploaden gaat allemaal prima, geen foutmeldingen meer. Ik heb de www-data groep toegekend aan /var/www/ en alle onderliggende bestanden/mappen.

Probleem met het uploaden is alleen dat alle bestanden met rechten 600 in die map terecht komen. Hierdoor kan ik niets met het bestand.

Ik heb op internet gezocht en heb gevonden dat je hiervoor het umask commando nodig hebt. Voor apache zou je in het bestand /etc/apache2/envvars een regel umask 013 toe moeten voegen om alle bestanden die apache creeert de rechten 764 te geven. Dit heb ik geprobeert, maar dit werkt niet.

Op het moment dat je met PHP een bestand upload wordt het bestand eerst in een temp map geplaatst, hier worden de rechten op het bestand wel 764. Daarna wordt het bestand doormiddel van move_uploaded_file gekopieeerd naar de daadwerkelijke map. Vervolgens worden de rechten 600.

Weet iemand hier een oplossing voor?

Edit: Ben er net achter dat dit probleem ook in de PHP documentatie in de comments staat zonder oplossing:
http://nl2.php.net/move_uploaded_file

Ik heb het probleem nu opgelost door copy ipv move_uploaded_file te gebruiken. Het lijkt dus om een fout in PHP te gaan. Toch houd ik mij aanbevolen voor een oplossing.