Como desabilitar a raiz do documento padrão no Apache?

7

Eu hospedo alguns sites no meu servidor executando o Apache Httpd. Cada site tem seu próprio domínio ou subdomínio e host virtual. Portanto, não preciso de raiz de documento padrão. É possível desativar DocumentRoot em /etc/httpd/conf/httpd.conf ?

    
por danijar 12.07.2015 / 15:56

3 respostas

7

Obrigado pelas outras respostas. Eu resolvi isso adicionando um host virtual padrão sem nenhuma permissão. As opções globais DocumentRoot e ServerName devem corresponder às especificadas no host virtual.

/etc/httpd/conf/httpd.conf

...
ServerName <server-ip>:80

DocumentRoot "/var/www/html"

<Directory />
    Order Deny,Allow
    Deny from all
    Options None
    AllowOverride None
</Directory>
...

/etc/httpd/conf.d/default.conf

<VirtualHost *:80>
        ServerName <server-ip>
        DocumentRoot /var/www/html
</VirtualHost>

Dessa forma, recebo uma mensagem 403 Forbidden quando o servidor é acessado diretamente pelo ip, que é exatamente o que eu queria. Seria ainda melhor se eu não precisasse de /var/www/html um diretório existente para isso, mas o Apache reclama se eu especificar algo como /dev/null .

    
por 12.07.2015 / 16:53
6

Não tenho certeza se você quer fazer isso. Se não houver nenhum vhost padrão em uma configuração do apache, o primeiro vhost definido se torna o padrão .

Tudo o que você realmente precisa fazer é ter o padrão para exibir uma página em branco.

    
por 12.07.2015 / 16:09
6

Sim e Não.

Você pode comentar ou remover a diretiva DocumentRoot , sem problemas. Mas isso não alcança muito, porque então será padronizado para o diretório padrão PREFIX/htdocs/ onde PREFIX é definido quando você constrói o apache.

Quando você tem o VirtualHosts configurado, todas as solicitações não tratadas por um host virtual configurado explicitamente são manipuladas pelo virtualhost padrão (que normalmente é o primeiro, mas httpd -S dirá a você).

    
por 12.07.2015 / 16:15