Início
» Como fazer
»
Limpar o aviso do arquivo .htaccess do Apache ownCloud com segurança
Limpar o aviso do arquivo .htaccess do Apache ownCloud com segurança
Para uma instalação do ownCloud Classic hospedada no Apache, corrija o aviso “AllowOverride All” ou “.htaccess não está funcionando” definindo a seguinte configuração AllowOverride Allem um bloco Apache correspondente <Directory>à raiz web do ownCloud no host virtual ativo. Teste a configuração do Apache, reinicie o serviço e atualize a Visão Geral da Administração do ownCloud. Não habilite as sobrescritas para todo o sistema de arquivos.
A configuração de sobrescrita deve estar no bloco de diretórios do Apache que corresponde ao caminho do sistema de arquivos do ownCloud.
O que significa o aviso
A diretiva do Apache AllowOverridecontrola quais configurações um .htaccessarquivo pode aplicar. Se as sobrescritas estiverem desativadas para o diretório do ownCloud, o Apache poderá ignorar as regras no .htaccessarquivo fornecido pelo ownCloud. Isso pode afetar as regras de reescrita e segurança, e é por isso que o manual atual do ownCloud 10.16 inclui AllowOverride Allessa diretiva no exemplo de configuração do Apache.
A diretiva é válida apenas em uma <Directory>seção do Apache. Ela não deve ser usada dentro de um bloco .htaccess`<script>`, um <Location>bloco `<script>` ou um caminho de URL. O Apache também alerta os administradores para não habilitarem sobrescritas no <Directory "/">bloco `<script>` global; em vez disso, limite a configuração ao diretório de instalação do ownCloud. Consulte o guia de instalação do ownCloud 10.16 para Apache e AllowOverridea documentação de referência do Apache .
Antes de editar o Apache
Confirme se o servidor web que gerencia o ownCloud é o Apache. Esta diretiva não configura o Nginx. Se o Apache estiver atrás de um proxy, identifique o host do Apache que serve os arquivos do ownCloud.
Encontre o caminho de instalação real do ownCloud, como /var/www/owncloud. Use o caminho do sistema de arquivos que o Apache serve, não um URL do navegador como /owncloud.
Faça backup do arquivo de host virtual ativo antes de alterá-lo. No Debian ou Ubuntu, o guia do ownCloud usa /etc/apache2/sites-available/owncloud.conf; outras distribuições usam locais diferentes.
Verifique se seus hosts virtuais HTTP e HTTPS estão separados. Configure-os no host virtual que atende às solicitações do ownCloud; se ambos os hosts virtuais servirem os arquivos diretamente, configure-os de forma consistente.
No Debian ou Ubuntu, sudo apachectl -Slista os hosts virtuais do Apache e os arquivos de configuração que os definem. Isso ajuda a evitar a edição de um site padrão não utilizado enquanto o host virtual HTTPS continua a servir o ownCloud.
Adicione a diretiva ao bloco de diretório correspondente.
Abra o arquivo vhost ativo e localize a <Directory>seção ownCloud existente. Adicione ou corrija a linha ali. Para uma instalação padrão em /var/www/owncloud, a parte relevante pode ser semelhante a esta:
DocumentRoot /var/www/owncloud
<Directory /var/www/owncloud/>
Options +FollowSymLinks -Indexes
AllowOverride All
Require all granted
</Directory>
Incorpore a configuração à sua configuração existente em vez de substituir todo o vhost com este breve exemplo. Se o seu diretório ownCloud estiver em outro local, substitua ambos os caminhos pelo caminho real. O Apache exige que o caminho do diretório corresponda ao caminho do sistema de arquivos que ele usa para os arquivos.
AllPermite que qualquer diretiva permitida em um .htaccessarquivo substitua as configurações do servidor neste diretório. Essa é uma permissão ampla, portanto, mantenha este bloco limitado à raiz da web do ownCloud. Não altere AllowOverride Nonepara /, /var/wwwou sites não relacionados apenas para silenciar o aviso.
Teste, recarregue e verifique.
No Debian ou Ubuntu, o ownCloud documenta mod_rewritecomo necessário para a configuração do Apache. Se não estiver habilitado, habilite-o com o seguinte comando:
sudo a2enmod rewrite
Em seguida, verifique a configuração antes de aplicá-la:
sudo apachectl -t
Continue somente se o Apache reportar algo Syntax OK. Recarregue o Apache para que ele leia o vhost atualizado:
sudo systemctl reload apache2
Em distribuições que usam o nome do serviço, use os comandos `configuration-test` e `reload` dessa distribuição. Retorne a Configurações > Administração > Visão geralhttpd do ownCloud e atualize a página. O aviso deverá desaparecer se o Apache estiver lendo o vhost editado e processando o arquivo `.env` do ownCloud ..htaccess
Verifique se o módulo de reescrita do Apache está habilitado quando o comportamento de reescrita do ownCloud fizer parte do aviso.Valide a configuração do Apache antes de recarregar o serviço.Após a reinicialização, volte à Visão Geral da Administração e verifique se o aviso do .htaccess desapareceu.
Se o aviso permanecer
Verifique o vhost ativo. Execute sudo apachectl -Snovamente e confirme se o arquivo alterado pertence ao nome do host e à porta usados pelo ownCloud. Uma AllowOverride Alllinha em um bloco incompatível não terá efeito.
Verifique o caminho e a seção exatos. Confirme se o bloco é uma <Directory /path/to/owncloud/>seção literal e se o caminho corresponde ao diretório de instalação. O Apache ignora ` AllowOverridein` .htaccesse ` <Location>.
Regenere as regras obsoletas do ownCloud somente quando necessário. Se o vhost estiver correto, mas as regras de reescrita do ownCloud precisarem ser atualizadas, consulte a documentação do manual occ maintenance:update:htaccess. Execute o comando a partir do diretório do ownCloud como o usuário do servidor web, por exemplo sudo -u www-data php occ maintenance:update:htaccess. O usuário do servidor web deve ter permissão para escrever no .htaccessarquivo fornecido para esta atualização. Não torne o arquivo gravável por todos; corrija a propriedade ou as permissões de acordo com as orientações da sua instalação.
Leia o log de erros do Apache após um erro 500. Uma verificação de sintaxe valida a configuração principal do Apache, mas uma diretiva .htaccessainda pode falhar se o módulo correspondente estiver ausente ou se a diretiva não for permitida. Use o log de erros para identificar o módulo ou a regra específica.
A configuração de URL sem o arquivo index.php documentada pelo ownCloud também exige `<index.php>` mod_rewrite, `<data>` mod_enve um diretório raiz gravável .htaccess; essa é uma configuração de reescrita relacionada, não um motivo para estender as sobrescritas além do diretório do ownCloud. Se sua configuração usa PHP-FPM, siga as orientações atuais do ownCloud para essa instalação, em vez de alterar os manipuladores PHP para lidar com um aviso de sobrescrita do Apache. Se o aviso indicar que o diretório de dados pode ser acessível publicamente, verifique se ele está fora da raiz da web ou protegido por uma regra explícita do Apache; eliminar o .htaccessaviso por si só não comprova que arquivos privados não podem ser solicitados diretamente.