
Zondag 20 Augustus 2006 20:45 Laatste aanpassing (Zaterdag 08 November 2008 14:10)
Joomla
Update: als je je hosting laat regelen door Byte, dan ben je van al het onderstaand gezeur af. Byte heeft slimme trucks toegepast, misschien zijn ze hierin niet uniek, maar van hun weet ik zeker dat het goed werkt.
De nu volgende kennis heb ik opgedaan op twee series van cursussen die ik ooit volgde bij Hewlett-Packard Nederland B.V. (http://www.hp.nl/general/route1.html)
Deze cursussen zijn:
Vooraf:
Ik gebruik een aantal synoniemen:
file = bestand
directory = folder = map
Er is veel misverstand over Joomla en bestanden die je niet kan verwijderen of bewerken (via ftp). Voor je het weet, spring je uit je vel want er is niets (relatief gezien) zo irritant als een foutmelding op zondagavond dat het bestand niet verwijderd kon worden.
Maar je moet je er wel even toe zetten.
Om te beginnen wil ik even de echte schuldige aanwijzen en dat is niet Joomla maar UNIX. Wellicht ten overvloede, maar UNIX is het besturingssysteem waar Joomla (meestal) op draait en dat je benadert met je FTP programma.
Nu zal ik proberen in een paar zinnen uit te leggen hoe het zit met het bestands-rechten systeem onder UNIX:
tot nu toe hebben we nog geen probleem... blijf echter lezen...
-jij krijgt zelf lees- en schrijf-rechten op dat bestand,
-en de groep, en de rest van de wereld krijgt alleen lees-rechten (dit wordt weergegeven door het getal 644; vraag niet waarom, voor je eigen bestwil).
-zul je zelf ook weer lees- en schrijf-rechten krijgen en als extraatje de execute-rechten (die heb je nodig op directories)
-en zal de rest van de wereld (jouw groep dus en de rest) alleen lees- en execute rechten krijgen en geen schrijf-rechten. Dit wordt met de volgende 'afkorting' weergegeven: 755 *)
*) Even tussendoor: Soms hebben web hosting bedrijven hun servers anders ingesteld.
Ik heb een snelle proef op de som genomen. Ik heb een mapje met daarin een bestandje ge-upload en heb gekeken wat voor rechten deze kregen:
provider #1: dir: 755 files: 644
provider #2: dir: 761 files: 664
provider #3: dir: 755 files: 644
Je ziet dus dat het door mij opgelepelde rechten-verhaal soms een beetje afwijkt.
Maar goed, je zou nog steeds zeggen: wat is het probleem... maar blijf nog even hangen...
Als jij met je ftp -programma files uploadt, is er geen probleem: jij bent als eigenaar heer en meester over de files en directories.
Even tussendoor: Hoe kun je zien wie de eigenaar is?
Hoe kun je zien wie de eigenaar is van een bestand of directory? Gebruik hiervoor bijvoorbeeld Smart-FTP. Volgens mij lukt het met FileZilla niet om dit te zien te krijgen. Met Smart-FTP kun je bij de eigenschappen van een bestand/file of map/directory zien wie de eigenaar is en tot welke groep het behoort.
Maar nu ga je het volgende doen: je gaat een extra component, module, of mambot installeren via de Joomla installation optie. Of je gaat via de Joomla media manager plaatjes uploaden, of een folder aanmaken op de lokatie images/stories
Als je via de Joomla installer iets installeert, of als je via Joomla plaatjes of bestanden uploadt, dan doe jij dat niet, maar dan doet Joomla dat. Oftwel, niet jouw user-id (waarmee je inlogt op je webserver als je bestanden wilt uploaden) is de eigenaar maar Joomla's user-id, en dat user-id is een ander user-id dan dat van jou, helaas. Vaak is dat een standaard systeem user-id, of hoe je het ook wilt noemen. Het kan elke naam hebben (hangt van de fantasie van degene die het UNIX systeem installeerde) maar het is vaak 'nobody' of bijvoorbeeld 'www-data'.
Hoe het allemaal zijn moge: jij bent niet meer de eigenaar van die bestanden. Hoogstwaarschijnlijk hebben de bestanden dus weer standaard de waarde 644 gekregen (dus lees- en schrijf-rechten voor de eigenaar, en lees-rechten voor de groep en de rest van de wereld. Alleen wil het geval dat JIJ nu bij de rest van de wereld hoort. Oftwel: jij hebt slechts lees-rechten. Je kunt het bestand dus eenvoudigweg niet verwijderen :-(
Er zijn voor zover ik kan overzien twee oplossingen, en die zal ik hier toelichten.
Éen manier om dit op te lossen, is het installeren van joomlaXplorer, een Joomla-component dat een soort Verkenner imiteert. Je kunt er, zij het niet zo geavanceerd als met de Windows Verkenner bestanden mee manipuleren. Het leuke is dat je dus nu ook die bestanden kunt verwijden en verplaatsen waarvan jij niet de eigenaar bent, want je doet het vanuit hetzelfde user-id als die waar het Joomla systeem de bestanden uploadde. Op sommige hosts laat het systeem zich echter niet installeren.
CHOWN staat voor CHange OWNer. Het is een UNIX commando. Je kunt het zelf niet uitvoeren (tenzij je Shell Accesshebt maar dat is standaard meestal niet het geval op een shared hosting omgeving, een ander woord voor goedkopere web hosting abonnementen :-). je kunt de helpdesk van je web hosting provider vragen om een CHOWN te doen op de gewenste bestanden. Je kunt ook gewoon vragen of ze je de eigenaar willen maken. Je kunt ook vragen of ze je gewoon eigenaar van alle bestanden maken. Dat is echter een drastische stap, die volgens mij wel goed gaat, maar ik wil hier geen harde uitspraak over doen. Het hangt ook van de kwaliteit van de geïnstalleerde extensies af, die je hebt geïnstalleerd. Als die de rechtenkwesties niet helemaal goed afhandelen kun je een probleem krijgen.