DocumentRoot do VirtualHost

3

Estou acostumado a ter o DocumentRoot como um caminho absoluto para a localização do DocRoot do site, geralmente algo como /usr/local/www/apache2/data/virtualhost_name . Isso é acessível a partir do PHP via $_SERVER['DOCUMENT_ROOT'] variable.

Eu hospedei sites em vários provedores de hospedagem compartilhada e todos eles tinham isso dessa maneira. Agora eu mudei para um novo provedor que tem configurado de forma diferente. O $_SERVER['DOCUMENT_ROOT'] do PHP sempre mostra / . Eu tenho vários sites no servidor em pastas diferentes, mas eles ainda mostram / como DocumentRoot.

Como posso conseguir a mesma coisa no meu servidor de desenvolvimento?

    
por Michal M 15.08.2011 / 09:03

1 resposta

1

Eu acho que eles CHROOT'd cada site, isso é comum em muitos provedores de hospedagem compartilhada, de modo a não revelar a estrutura de diretórios do servidor.

Em um console, se você fizer um

ls -l

os arquivos do servidor da web são exibidos como pertencentes a um usuário do site? I.E. Cada site tem sua própria conta de usuário no servidor. Se isso acontecer, eu acho que é uma CHOOT, o que é bastante fácil de fazer. ( Algumas instruções aqui )

Verifique também para ver onde o arquivo atual é

<?php
echo dirname(__FILE__);
?>

(Isso mostrará o diretório do arquivo atual, se a raiz do documento for '/', então esse script deve retornar algo como '/myphpfile.php')

Embora eu não tenha verificado se uma CHROOT mudaria o DOCUMENT_ROOT no PHP, eu presumo que seria.

No entanto, não vejo como ter o DOCUMENT_ROOT como / seria um problema, contanto que você esteja carregando dinamicamente a partir do $ _SERVER global em vez de codificar permanentemente o diretório, isso não deve ser um problema.

    
por 15.08.2011 / 10:52