O que aconteceu é que a sintaxe dos arquivos de configuração no apache2.4 mudou.
Fonte: Isso aconteceu comigo também depois que eu atualizei para a 13.10
arquivos conf.d
Todos os arquivos que estavam dentro /etc/apache2/conf.d
devem ser movidos para /etc/apache2/conf-available
.
Eles agora funcionam da mesma maneira sites
e mods
funcionam. Basta colocar seus arquivos conf na conf-available
pasta e ativar o que você deseja a2enconf <config-file-name>
.
Exemplo:
Eu tinha um arquivo conf.d/httpd.conf
que tinha a diretiva ServerName.
Para fazer isso funcionar, tive que movê-lo para o conf-available
diretório e habilitá-lo manualmente.
sudo mv /etc/apache2/conf.d/httpd.conf /etc/apache2/conf-available/httpd.conf
sudo a2enconf httpd
arquivos de sites
Anteriormente, os arquivos /etc/apache2/sites-available
não tinham extensão. Por exemplo /etc/apache2/sites-available/default
. Agora .conf
é necessária uma extensão.
Exemplo:
Se você tivesse /etc/apache2/sites-available/some-site
, no 13.04, você pode apenas ativá-lo usando sudo a2ensite some-site
. Agora, você receberá um erro dizendo
ERRO: O site de algum site não existe!
Para corrigir isso, anexe a .conf
a todos os seus arquivos de configuração em sites-available
. Você pode fazer o mesmo sites-enabled
ou excluir todos os arquivos e reativá-los manualmente.
Eu recomendo fazê-los manualmente, pois você provavelmente precisará corrigir cada VHost (próxima etapa).
sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;
se você decidiu fazê-los manualmente:
sudo rm /etc/apache2/sites-enabled/*
sudo a2ensite your-site-name
Diretivas de host virtual:
permitir / negar vs exigir
Se você tivesse o seguinte:
<Directory /path/to/your/site/>
order allow,deny
allow from all
</Directory>
Deve tornar-se:
<Directory /path/to/your/site/>
Require all granted
</Directory>
Para mais informações, verifique os comentários de DaveRandom em uma resposta no Stack Overflow.
Simplificando, se você atualizou para o apache2.4 e manteve o antigo httpd.conf
apache2.2, a diretiva allow deve continuar funcionando bem. Se você atualizou o seu httpd.conf
(o que eu sugeriria), você receberá 403 erros até alterar as diretivas Order
/ Allow
/ Deny
para o equivalente Require
.
Opções de Diretório
Se você tivesse opções Directory, nota que todos eles têm de ser precedidas por uma +
ou -
ou nenhum deles em tudo. Uma mistura de ambos não é permitida:
Exemplo:
Isso é permitido:
<Directory /path/to/your/site/>
Options +Indexes +FollowSymLinks -MultiViews
</Directory>
Então é isso (observe que esses exemplos não fazem a mesma coisa, o anterior desativa a MultiViews
opção, o próximo não):
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks MultiViews
</Directory>
Isso não é mais permitido:
<Directory /path/to/your/site/>
Options Indexes FollowSymLinks -MultiViews
</Directory>
A última opção de configuração lançará o erro de sintaxe a dizer:
Todas as opções devem começar com + ou -, ou nenhuma opção pode.
Reinicie o apache
Depois que tudo estiver pronto, você precisará reiniciar o servidor apache para que as alterações entrem em vigor:
sudo apache2ctl restart
Você pode encontrar um guia de atualização detalhado de 2.2 a 2.4 na documentação oficial.
httpd.conf
arquivo ouconf.d
diretório. Mas há umapache2.conf
arquivo. Tentei movê-lo para oconf-available
diretório e obtive o seguinte erro ao reiniciar o apache2: apache2: Não foi possível abrir o arquivo de configuração /etc/apache2/apache2.conf: Esse arquivo ou diretório não existe - Qual poderia ser o motivo?httpd.conf
foi apenas um exemplo. É possível que você não tenha nenhum arquivo de configuração noconf.d
diretório; nesse caso, apenas pule essa etapa. Quanto aapache2.conf
, não deve ser movido para oconf-available
diretório. É o principal arquivo de configuração do apache, e seu caminho deve ser /etc/apache2/apache2.conf e não deve ser alterado.config.d
ousites available
pasta. veja todos os arquivos de configuração aqui: imgur.com/WczXp3vPresumo que os sites estejam sendo executados no seu servidor Ubuntu.
Verifique o httpd.conf para garantir que a configuração do DocumentRoot esteja apontando para o lugar certo.
Verifique se as permissões de arquivo na pasta referenciada pelo DocumentRoot podem ser lidas pelo usuário em que o servidor da web é executado.
Verifique se você possui um index.html / index.htm etc adequado e se o servidor da web não está tentando fazer uma listagem de diretório.
fonte
Eu tive problemas semelhantes.
Eu não conseguia executar o apache 2.4 a menos que eu usasse 'Permitir de todos', isso era irritante, pois eu queria fornecer uma pausa limpa das versões <2.4. Depois de muitas tentativas e erros e muita pesquisa, vi uma referência ao access_compat e percebi que isso estava lá apenas por compatibilidade. Embora a documentação do apache indique que ambos podem ser usados, recomenda que você não deva.
Eu removi este módulo do arquivo de carregamento / etc / sysconfig / apache2, isso resolveu meu problema imediatamente.
Atenciosamente Liam
fonte
Estou servindo arquivos de um diretório não padrão, para que a atualização funcione, tive que editar o arquivo /etc/apache2/apache2.conf e adicionar: Opções Índices FollowSymLinks AllowOverride Nenhum Exigir tudo o que é concedido
Após isso, e as alterações recomendadas acima, o erro 403 desapareceu.
fonte