We hebben hier een server staan die met mod_vhost_alias werkt en dus met VirtualDocumentRoot.
Het nadeel is echter dat je op die manier geen openbasedir kan instellen, wat dus zeker moet veranderen.
Ik had een patch gevonden om de openbasedir automatisch in te stellen op de virtualdocumentroot, hiervoor heb ik de php source file fopen_wrappers.c moeten aanpassen en php opnieuw moeten compilen en installen.
Hier kan je de patch vinden:
http://wiki.preshweb.co.uk/doku.php?...remassvhosting
Hierdoor werkte dit, maar het nadeel is dat je via de patch geen andere dirs aan de openbasedir kan toevoegen. Enkel dus de documentroot is toegankelijk op deze manier. Waardoor er bijvoorbeeld ook geen sessies en dergelijke kunnen aangemaakt worden in de /tmp dir. Hiervoor moet die patch dus aangepast worden. Iets dat waarschijnlijk niet al teveel werk is maar mijn ervaring in C is gering. Ik heb al geprobeerd om met strcat bijvoorbeeld in de source ":/tmp" enzo te concatineren met de openbasedir, maar dan wou m'n php niet meer compilen. Waarschijnlijk gewoon een fout in m'n code, zoals ik al zei heb ik weinig ervaring in C.
Iemand enig idee hoe je dit zou kunnen doen?
Daar moet ik dus ergens de string ":/tmp" kunnen aanplakken, ik weet dat dit misschien niet de beste oplossing is, maar het is maar voor één server en als ik zo uit de nood ben is dat voldoende.Code:if ((strcmp(PG(open_basedir), "VIRTUAL_DOCUMENT_ROOT") == 0) && SG(request_info).path_translated && *SG(request_info).path_translated ) { strlcpy(local_open_basedir, SG(request_info).path_translated, sizeof(local_open_basedir)); local_open_basedir_sub=strstr(local_open_basedir,SG(request_info).request_uri); if (local_open_basedir_sub) *local_open_basedir_sub = '\0'; } else
Wat ik al had geprobeerd is dit, maar dan wou m'n php dus niet meer compilen:
Graag hulpCode:char odirpathsuf[]=":/tmp"; if ((strcmp(PG(open_basedir), "VIRTUAL_DOCUMENT_ROOT") == 0) && SG(request_info).path_translated && *SG(request_info).path_translated ) { strlcpy(local_open_basedir, SG(request_info).path_translated, sizeof(local_open_basedir)); local_open_basedir_sub=strstr(local_open_basedir,SG(request_info).request_uri); if (local_open_basedir_sub) *local_open_basedir_sub = '\0'; strcat(local_open_basedir,odirpathsuf); } else![]()

Likes:


Quote