Drupal color.module en php safe mode

Ik kwam het vandaag weer tegen: de Drupal color.module en php safe mode zijn niet gelukkig met elkaar. Specifieker: het Garland theme is een van de weinige Drupal vormgevingen die in kleur kunnen worden aangepast vanuit het CMS met de color.module, maar wat niet werkt als je webhosting met php safe mode werkt. Helaas, dan maar geen safe mode. Dat is sowieso exit in php 6, naar het schijnt.

Update: de technische achtergrond is als volgt. De color module maakt bij elke kleurwijziging een subdirectory aan in de files/color directory en wil hierin een aantal aangepaste theme bestanden plaatsen.

Echter, in safe mode laat php niet toe dat een script (met een ander uid dan het uid van de webserver) bestanden plaatst in een directory waarvan het uid niet gelijk is aan dat van de eigenaar van het script. En dat is, in meeste gevallen, de situatie.

Het probleem ontstaat dus doordat de color module directories aanmaakt en de nieuwe bestanden niet in een bestaande directory plaatst.

Voorbeeld: stel de webserver werkt met uid/gid wwwrun:www en de website (Drupal code) is gehost met uid/gid user:group. Bij het wijzigen van een Garland/Minelli kleur zal de color module een subdirectory aanmaken in files/color. Deze subdirectory krijgt de uid/gid van de webserver, dus wwwrun:www.

Vervolgens wil de color module een aantal bestanden plaatsen in deze nieuwe subdirectory, maar dat laat php niet toe, aangezien het uid/gid van de Drupal installatie (user:group) niet overeenkomt met die van de subdirectory.

Over MO6.nl

Dit is een persoonlijk blog van George Moses. George is een webdeveloper gespecialiseerd in Drupal en vennoot van Dynamic Presentations, een Internet Solutions Provider gevestigd in Nederland.
Meer over MO6.nl.

MO6 in English: MO6.me

MO6 op het web

MO6