Um subdiretório /var/www/vhost/servername/httpdocs/subdir/
de um apache (ver. 2.2.22 no Ubuntu 12.04) vhost webroot é uma partição de disco própria. Consequentemente, há também /var/www/vhost/servername/httpdocs/subdir/lost+found
. Em meus logs de erro do apache, encontro erros que /var/www/vhost/servername/httpdocs/subdir/lost+found/.htaccess
não podem ser lidos, com um referenciador como /var/www/vhost/servername/httpdocs/subdir/foo/
(ou seja, quando um FancyIndexing
índice de diretório desse diretório é exibido para o usuário).
[Fri Nov 28 09:14:19 2014] [crit] [client 10.0.0.1] (13) Permissão negada: /var/www/vhost/servername/httpdocs/subdir/lost+found/.htaccess pcfg_openfile: incapaz de verificar htaccess, certifique-se de que seja legível, referencie:
http://servername/subdir/foo/
Eu não consigo entender isso. Por que o apache tentaria ler
/var/www/vhost/servername/httpdocs/subdir/lost+found/.htaccess
naquela ocasião? No meu entendimento só deveria ter motivos para tentar ler
/var/www/vhost/servername/httpdocs/subdir/foo/.htaccess
/var/www/vhost/servername/httpdocs/subdir/.htaccess
/var/www/vhost/servername/httpdocs/.htaccess
Curiosamente, nenhuma mensagem de erro correspondente ocorre com subdiretórios mais profundos (por exemplo http://servername/subdir/foo/bar/baz/
, ).
O que causa esse erro (ou a tentativa de leitura em primeiro lugar)? E como posso me livrar disso?
O Apache tentará encontrar
.htaccess
arquivos em todos os diretórios, maslost+found
geralmenteroot
só pode ser lido por ele, portanto, não pode nem verificar se há um arquivo lá.Uma solução é montar o disco em outro lugar, mover os dados para um subdiretório desse ponto de montagem e, em seguida, fazer um link simbólico ou vincular a montagem desse subdiretório no lugar. Desta forma,
lost+found
não está na árvore de diretórios que o Apache procura.