O que aconteceu é que a sintaxe dos arquivos de configuração no apache2.4 foi alterada.
Fonte: Isso aconteceu comigo depois que fiz o upgrade para 13.10
arquivos conf.d
Todos os arquivos que estavam em /etc/apache2/conf.d
devem ser movidos para /etc/apache2/conf-available
.
Eles agora funcionam da mesma maneira sites
e mods
work. Basta colocar seus arquivos conf na pasta conf-available
e ativar o que você deseja com 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 diretório conf-available
e ativá-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 em /etc/apache2/sites-available
não tinham extensão. Por exemplo, /etc/apache2/sites-available/default
. Agora, é necessária uma extensão .conf
.
Exemplo:
Se você tivesse /etc/apache2/sites-available/some-site
, em 13.04 você pode ativá-lo usando sudo a2ensite some-site
. Agora, você receberá um erro dizendo
ERRO: Site algum site não existe!
Para corrigir isso, anexe um .conf
a todos os seus arquivos de configuração em sites-available
.
Você pode fazer o mesmo em sites-enabled
, ou você pode excluir todos os arquivos e reativá-los manualmente. Eu recomendo fazê-los manualmente, pois você provavelmente precisará corrigir cada VHost (próximo passo). / em>
sudo find /etc/apache2/sites-available/ ! -iname '*.conf' -type f -exec mv '{}' '{}'.conf \;
se você decidiu fazê-las 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 se tornar:
<Directory /path/to/your/site/>
Require all granted
</Directory>
Para mais informações, consulte os comentários por DaveRandom numa resposta no Stack Overflow.
Simplificando, se você atualizou para o apache2.4 e manteve o antigohttpd.conf
do apache2.2, permita que diretiva continue funcionando bem. Se você atualizou seu httpd.conf
(o que eu sugeriria), você receberá 403 erros até alterar as diretivas Order
/ Allow
/ Deny
para seu equivalente Require
.
Opções de diretório
Se você tivesse opções de Diretório, observe que todas elas precisam ser adicionadas com +
ou -
ou nenhuma delas. 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 opção MultiViews
, 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 emitirá um erro de sintaxe dizendo:
Todas as opções devem começar com + ou - ou nenhuma opção pode.
Reinicie o apache
Quando tudo estiver pronto, você precisará reiniciar o servidor apache para que as alterações entrem em vigor:
sudo apache2ctl restart
Você pode encontrar um detalhado guia de atualização de 2.2 a 2.4 na documentação oficial.