Corrija o aviso "allowOverride All" do Apache ownCloud com segurança.
Se o ownCloud reportar que a configuração do Apache AllowOverride Allestá faltando, adicione-a ao <Directory>bloco do Apache que corresponde ao caminho de instalação do ownCloud, teste a configuração e reinicie o Apache. Em uma instalação típica do Debian ou Ubuntu, a configuração deve estar no host virtual do ownCloud ativo ou no bloco de diretório correspondente na configuração do Apache. Não habilite alterações em todo o servidor apenas para eliminar um aviso.
No ownCloud Server (Classic), o Apache precisa ter permissão para ler as regras de instalação .htaccess. Essas regras permitem a reescrita de URLs e ajudam a proteger caminhos sensíveis. Uma regra ausente ou ineficaz pode, portanto, afetar tanto URLs amigáveis quanto a verificação de segurança do diretório de dados. Este guia se aplica ao ownCloud Server usando o servidor HTTP Apache; não se aplica ao Nginx, ao ownCloud Infinite Scale ou a configurações de hospedagem em que a configuração do Apache é controlada pelo provedor.
Confirme se o Apache consegue analisar a alteração.
sudo apachectl -tdeve reportarSyntax OK
Ative a configuração
sudo systemctl reload apache2em Debian ou Ubuntu
Verificar URLs amigáveis
Certifique-se mod_rewritede que esteja ativado, caso sua configuração exija.
Confirme se o aviso desapareceu.
Recarregue a visão geral da administração do ownCloud após testar o URL afetado.
O que significa o aviso
A diretiva do Apache AllowOverridedecide se as diretivas em .htaccessarquivos podem afetar as requisições. O Apache só respeita diretivas AllowOverridedentro de uma <Directory>seção; colocar a linha no nível superior de um host virtual ou em um bloco não relacionado não a habilitará para os arquivos do ownCloud. Uma <Directory>regra mais abrangente, uma regra mais específica ou outro host virtual habilitado também podem significar que a configuração que você editou não é a que está atendendo à requisição.
As instruções de instalação do servidor 10.16 do ownCloud mostram AllowOverride Allo bloco de diretórios para a raiz do documento do ownCloud. A permissão "All" permite a sobrescrita das classes suportadas pelos módulos do Apache nesse escopo. Mantenha essa permissão limitada ao diretório do ownCloud, em vez de alterar a política global do sistema de arquivos do Apache. O manual do Apache também descreve AllowOverrideListcomo administradores podem permitir apenas diretivas específicas, mas uma lista restrita requer testes de compatibilidade cuidadosos com a versão do ownCloud e suas .htaccessregras padrão.
Um exemplo de host virtual é colocado AllowOverride Alldentro do bloco de diretório para /var/www/owncloud.
Antes de alterar o Apache
Confirme se o produto é o ownCloud Server (Classic) e identifique o caminho exato do sistema de arquivos da sua raiz web. Uma URL como essa /cloudpode ser mapeada por meio do Apache Aliaspara um diretório diferente no disco.
Localize o host virtual ativo e o arquivo de configuração. No Debian ou Ubuntu, os locais comuns incluem `/etc/hosts` /etc/apache2/sites-available/e ` /etc/hosts` /etc/apache2/apache2.conf. Em sistemas da família RHEL, a configuração do Apache geralmente fica em `/etc/hosts` /etc/httpd/. Painéis de hospedagem e contêineres podem usar outros caminhos.
Faça um backup do arquivo antes de editá-lo e preserve todas as diretivas TLS, proxy, controle de acesso e ownCloud existentes.
Verifique se outra AllowOverride Noneregra de diretório ou de site se aplica ao mesmo caminho. Não edite um arquivo de site padrão que não esteja habilitado para o nome de host do ownCloud.
Corrigir um servidor Apache autogerenciado
1. Edite a configuração ativa.
No Debian ou Ubuntu, abra o host virtual que serve o hostname do ownCloud, por exemplo:
Dentro desse arquivo, encontre ou adicione uma <Directory>seção para o diretório de instalação do ownCloud. Este exemplo mínimo mostra o posicionamento correto; mantenha quaisquer diretivas adicionais já exigidas pelo seu servidor:
<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
Substitua /var/www/owncloud/pelo seu caminho real. Se o Apache mapear uma URL com Alias, configure o diretório do sistema de arquivos que contém os arquivos do ownCloud, e não apenas o caminho da URL. O guia de instalação do Apache para ownCloud inclui notas de configuração adicionais; use o exemplo que corresponde à sua versão do ownCloud e à sua configuração do PHP.
2. Verifique os módulos e a sintaxe.
Para URLs limpas sem index.php, documentos ownCloud mod_rewritee mod_envcomo pré-requisitos. No Debian ou Ubuntu, habilite o módulo de reescrita se ainda não estiver ativo:
sudo a2enmod rewrite
sudo apachectl -t
O teste de configuração deve terminar com sucesso Syntax OK. Se ocorrer um erro, corrija-o antes de recarregar. Uma verificação de sintaxe bem-sucedida comprova que o Apache consegue analisar sua configuração; ela não comprova que o host virtual correto está ativo ou que o processo em execução carregou o arquivo editado.
O teste de configuração do Apache deve retornar Syntax OKantes de você recarregar o serviço.
3. Recarregue o Apache e teste o ownCloud.
No Debian ou Ubuntu, reinicie o Apache após a verificação de sintaxe ser bem-sucedida:
sudo systemctl reload apache2
Para sistemas da família RHEL, o serviço geralmente é chamado de `<nome_do_serviço>` httpd, portanto, use o nome de serviço correspondente e o comando `configuration-test` da sua distribuição. Não copie comandos específicos do Debian para outro sistema sem antes confirmar a estrutura de serviços.
Abra o hostname do ownCloud em um navegador e teste uma página que precisou ser reescrita anteriormente. Se o servidor usar um prefixo de caminho, como `/` /cloud, teste também a URL com o prefixo. Um loop de redirecionamento, uma resposta 403 ou um erro 500 do Apache significam que a configuração ainda precisa ser investigada; verifique o log de erros do Apache e o log do ownCloud em vez de alterar repetidamente diretivas não relacionadas.
Habilite mod_rewritesomente quando necessário e, em seguida, recarregue o serviço Apache após uma verificação de sintaxe bem-sucedida.
Se o aviso permanecer
Sintoma
Próxima verificação
O aviso permanece após recarregar.
Confirme se o host virtual editado está habilitado e servindo o nome do host; inspecione apachectl -Se verifique se há alguma regra de diretório de nível inferior ou mais específica.
URLs limpas ainda incluemindex.php
Verifique se mod_rewriteestá ativado, se o diretório ownCloud possui a permissão de substituição desejada e se a base de reescrita do ownCloud corresponde ao seu caminho de URL.
A página de administração indica que o diretório de dados pode ser de acesso público.
Verifique se o diretório de dados está fora da raiz da web, sempre que possível. Caso contrário, confirme se o diretório de dados fornecido .htaccessexiste, se é legível e se é respeitado pelo Apache; não considere a remoção do aviso como um substituto para a proteção do diretório.
O Apache retorna 500 ou reporta "não permitido aqui".
Leia o log de erros do Apache. Uma diretiva .htaccesspode não ser permitida pelas classes de sobrescrita ativas, ou um módulo necessário pode estar indisponível.
Executando em um contêiner ou host gerenciado
Inspecione a configuração do Apache documentada na imagem ou o painel de controle do provedor. Um arquivo Apache em nível de host pode não ser o servidor que lida com as solicitações.
Se o ownCloud informar que seu .htaccessarquivo não pode ser atualizado, verifique a propriedade e as permissões de gravação de acordo com as orientações de atualização e segurança do ownCloud antes de alterá-las. Evite tornar toda a instalação gravável pelo servidor web como um atalho. A documentação do ownCloud observa que os detalhes de configuração variam de acordo com a instalação e que o PHP-FPM não usa as configurações do PHP de `/etc/php.php` .htaccess; as configurações para esse caso devem ser feitas em `/etc/php.php` .user.ini. Essa distinção do PHP não substitui a necessidade do Apache de processar as regras de reescrita e acesso do ownCloud.
Lista de verificação
O <Directory>caminho corresponde exatamente aos arquivos do ownCloud no disco.
O bloco correspondente contém AllowOverride All, e nenhuma regra conflitante ativa tem precedência.
sudo apachectl -tretornos Syntax OK.
O Apache foi recarregado usando o nome de serviço correto.
A página de login do ownCloud e um URL previamente afetado carregam via HTTPS conforme o esperado.
A visão geral da Administração não exibe mais o mesmo aviso após a atualização, e o diretório de dados permanece inacessível na web pública.
Exemplo de página de login do ownCloud no hostname configurado; confirme o status real do aviso na sua visão geral de administração.