Se você pode editar seu PHP, você pode calcular o DOCUMENT_ROOT correto e atualizar a variável no bootstrap. Veja um exemplo: link
Estou usando o VirtualDocumentRoot na configuração do host virtual.
Meu VirtualDocumentRoot está definido como / var / www /% 1 / e, se eu criar uma pasta, diga teste, está funcionando como esperado. O problema é, quando estou usando $ _SERVER ["DOCUMENT_ROOT"] no meu php arquivos está reajustando / var / www. É possível ter o php retornando o mesmo caminho para $ _SERVER ["DOCUMENT_ROOT"] como configurado no VirtualDocumentRoot.
Se você pode editar seu PHP, você pode calcular o DOCUMENT_ROOT correto e atualizar a variável no bootstrap. Veja um exemplo: link
Seguindo o conselho no link da resposta do @ Thomas, foi assim que eu lidei com isso;
Na minha diretiva de host virtual dinâmica no httpd.conf, adicionei este php prepend;
php_admin_value auto_prepend_file /var/www/html/uat.mydomain.co.uk/update_doc_root.php
Em seguida, na raiz do meu diretório uat, salvei um pequeno arquivo que é anexado a todas as solicitações atendidas pela entrada do host virtual dinâmico (nem todos os hosts neste servidor são dinâmicos e eu não quero mexer com os outros). Nele, eu coloco isso;
<?php
$path = explode("/",str_replace($_SERVER['DOCUMENT_ROOT'],"",$_SERVER['SCRIPT_FILENAME']));
$_SERVER['DOCUMENT_ROOT'] .= "/" . $path[1] . "/" . $path[2];
Isso funciona para mim porque meu VirtualDocumentRoot tem dois níveis abaixo da raiz do meu documento httpd. Se o seu for mais profundo, você precisará ajustar os índices do array $ path.
Espero que isso ajude outras pessoas com o mesmo problema ...
Tags php apache-2.2