Como posso atualizar minha variável php DOCUMENT_ROOT do VirtualDocumentRoot

6

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.

    
por Supratik 21.09.2010 / 16:33

2 respostas

2

Se você pode editar seu PHP, você pode calcular o DOCUMENT_ROOT correto e atualizar a variável no bootstrap. Veja um exemplo: link

    
por 06.01.2011 / 01:14
1

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 ...

    
por 14.02.2014 / 16:24