Permitindo visualização / travessia de diretório para um VirtualHost específico no Apache 2.2

3

Eu tenho o seguinte vhost configurado:

<VirtualHost *:80>
    DocumentRoot /var/www/myvhost
    ServerName myv.host.com
    ServerAlias myv.host.com
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log combined
    ServerAdmin [email protected]
    <Directory /var/www/myvhost>
        AllowOverride All
        Options +Indexes
    </Directory>
</VirtualHost>

A configuração aparece como correta na perspectiva da ferramenta apachectl .

No entanto, não consigo obter uma listagem de diretórios nesse vhost:

Forbidden

You don't have permission to access / on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

O log de erros mostra o seguinte:

[Wed Mar 07 19:23:33 2012] [error] [client 66.6.145.214] Directory index forbidden by Options directive: /var/www/******

update2

Mais recentemente, o seguinte está entrando no error.log:

[Wed Mar 07 20:16:10 2012] [error] [client 192.152.243.233] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/error/noindex.html

update3

Hoje, o seguinte está sendo excluído:

[Thu Mar 08 14:05:56 2012] [error] [client 66.6.145.214] Directory index forbidden by Options directive: /var/www/<mydir>
[Thu Mar 08 14:05:56 2012] [error] [client 66.6.145.214] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/error/noindex.html
[Thu Mar 08 14:05:57 2012] [error] [client 66.6.145.214] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

Isto é depois de modificar o arquivo vhosts.conf assim:

<VirtualHost *:80>
    DocumentRoot /var/www/<mydir>
    ServerName myhost
    ServerAlias myhost
    ErrorLog logs/myhost-error_log
    CustomLog logs/myhost-access_log combined
    ServerAdmin admin@myhost
    <Directory "/var/www/<mydir>">
         Options All +Indexes +FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
    </Directory>
</VirtualHost>

O que está faltando?

atualização 4

Todos os subdiretórios do diretório raiz fazem listas de diretórios corretamente - é somente a raiz que não pode.

    
por warren 07.03.2012 / 20:31

4 respostas

0

Minha solução (até 21 de março de 2012)

  • move todo o conteúdo para um subdiretório
  • crie um arquivo index.html de redirecionamento na raiz que é recarregada no subdiretório

Eu ainda quero saber por que não posso simplesmente percorrer o diretório em si, mas isso está funcionando por enquanto.

    
por 22.03.2012 / 03:29
5

A 403 significa que o recurso está sendo encontrado. Verifique se o apache tem alguma permissão de nível para r-x da raiz do documento e todos os diretórios acima dele e r-- dos arquivos nele.

Tente alterar sua diretiva do diretório para

<Directory /var/www/myvhost>
    AllowOverride All
    Options +Indexes
    Order allow,deny 
    Allow from all
</Directory>
    
por 07.03.2012 / 21:36
1

Eu tive um problema semelhante hoje em dia, quando vi um erro como o mostrado acima:

[Wed Oct 17 14:19:08 2012] [error] [client 123.66.66.22] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/mysite/

Opções de mixagem com e sem +/- são problemáticas, observe os documentos do apache sobre opções :

Mixing Options with a + or - with those without is not valid syntax, and will be rejected during server startup by the syntax check with an abort.

Além disso, o efeito de usar validamente uma diretiva sem um +/- remove todas as outras diretivas definidas anteriormente para esse diretório.

Eu usei um índice sem o + e tive o erro que copiei acima.

Como você diz que não está usando arquivos .htaccess, por que não alterar a diretiva Directory para isso:

<Directory /var/www/myvhost>
    AllowOverride None
    Options +Indexes
    Order allow,deny
    Allow from all
</Directory>
    
por 18.10.2012 / 00:36
0

Nos meus sistemas CentOS 5/6/7 este problema é causado por algum tipo de conflito no padrão /etc/httpd/conf.d/welcome.conf que vem com o sistema. Comentando todas as linhas de welcome.conf e reiniciando o servidor web resulta no índice do diretório para ser visualizado na webroot. Parece ser simplesmente um bug na configuração padrão do servidor web, que sai da caixa pelo menos nos sistemas Red Hat / CentOS, mas potencialmente em outros também. Seu sistema pode estar passando por um problema semelhante.

    
por 23.03.2016 / 06:18