webForumDet fria alternativet

unlink() - Permission denied

7 svar · 512 visningar · startad av tHorSeYE

tHorSeYEMedlem sedan juli 200255 inlägg
#1

Jag har problem med funktionen unlink(). Jag har skrivit ett skript som skapar fotoalbum. Tanken är så här:
1. Man laddar upp en mapp med bilder via FTP (tänkte att det var smidigare istället för att sitta och välja bilder en och en med ett filuppladdningsformulär)
2. På "Skapa album"-sidan får man välja vilken mapp man vill skapa album ifrån. Dessa mappar ligger i en mapp som heter photos_temp.
3. Nu startar processen att skapa thumbnails och skala om bilderna till önskad storlek. Alla nya bilder och thumbnails läggs i mappen photos i en mapp med samma namn som mappen hade i photos_temp. Bilderna i photos_temp raderas allt eftersom processen går vidare. Två och två skalas bilderna och och raderas därefter.

Nu till problemet. På min egen dator funkar detta alldeles utmärkt, men när jag testar det på webhotellet fungerar det inte fullt ut. Bilderna kan inte raderas. Jag använder unlink() för att radera filerna, men det verkar som om jag inte har behörighet att göra detta. Både mappen photos_temp och photos är chmoddade till 7777, men det verkar inte hjälpa. Jag läste lite i kommentarerna till unlink() på https://www.php.net och såg detta:

If you get an error while deleting a file from the system, check who is the owner of the file. For example if you move to another system and the owner is 'nobody' then the owner should be nobody for that file on the new system.If you delete as another user, you will get an error.

Hur ser jag vem som är ägare till filerna? Måste jag ändra ägare på alla filer för att det jag vill göra ska fungera? Några förslag på hur jag ska gå tillväga?

FuelMedlem sedan okt. 20001 285 inlägg
#2

Mapparna kan ha en annan ägare .. tror php kan köra som user nobody . .dvs inte du .. alltså kan du inte radera dom .. men jag vet inte säkert om jag svamlar eller inte

GunnarDMedlem sedan juni 20014 290 inlägg
#3

Det är som Fuel skriver, eftersom användaren som webservern och phptolken körs som inte äger filerna så kan den inte ta bort filerna.

Det kan gå om du chmod'ar mappen till 0777, gör du 7777 så sätter du på bl.a. "sticky bit" på mappen viket gör att bara användaren som äger filen kan ta bort den, så om ditt webhotel inte har några andra skydd igång så borde 0777 hjälpa.

tHorSeYEMedlem sedan juli 200255 inlägg
#4

Tack för hjälpen, det var det som var kruxet. Tyvärr funkar det inte i praktiken att behöva chmoda de mappar som ska göras album av. De människor som ska använda systemet har inte en aning om hur det funkar.

Kan man på något sätt göra en inställning att alla mappar som laddas upp i photos_temp blir 0777? Kan man använda .htaccess-filen på nåt sätt här?

Om man ska ta tjuren vid hornen och designa om hela bildgalleriet, hur brukar vanliga bildgallerier där man laddar upp mängder av bilder funka? Har aldrig använt något färdigbyggt, men det måste väl vara rätt smidiga lösningar eftersom så många använder det? Jag antar att man inte laddar upp en bild i taget i varje fall.

GunnarDMedlem sedan juni 20014 290 inlägg
#5

Mha umask så kan man tala om för ftp-servern att alla mappas skall få rättigheterna 0777 så frågan är hur du ställer in det i ftp-servern och om du har rätt att göra så.

tHorSeYEMedlem sedan juli 200255 inlägg
#6

Kan jag tala om det för ftp-servern genom en phpfil som ligger på servern? För du menar php-kommandot umask väl? Är inte riktigt med på hur man ska kunna ställa in ett phpkommando i en ftp-server, eller vad du egentligen menar...

GunnarDMedlem sedan juni 20014 290 inlägg
#7

Nej jag menar ftp-serverns kommando för umask, eftersom det är ftp-servern som skapar filerna/katalogerna så är det i den man måste ställa in umask'en.

tHorSeYEMedlem sedan juli 200255 inlägg
#8

Jahopp. Eftersom jag inte har någon tillgång till ftp-servern får jag väl helt enkelt lösa det på något annat sätt. Åter till en av mina tidigare frågor:

Hur brukar vanliga bildgallerier där man laddar upp mängder av bilder funka? Har aldrig använt något färdigbyggt, men det måste väl vara rätt smidiga lösningar eftersom så många använder det? Jag antar att man inte laddar upp en bild i taget i varje fall.

133 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)