
Estou tentando configurar um servidor Apache2, mas não consigo carregar meus hosts virtuais. Ou, para ser mais preciso, funciona bem desde que eu os escreva 000-default.conf
, mas sempre que tento usar um arquivo separado, ele parece ignorá-lo completamente.
Por que isto não está funcionando? E como faço para que isso funcione?
Responder1
Normalmente, se alguém quiser definir configurações de host virtual separadas, você as colocaria neste diretório:
/etc/apache2/sites-available/
Portanto, se você tiver um host virtual chamado, www.example.com
o nome do arquivo de configuração poderá ser nomeado www.example.com.conf
assim:
/etc/apache2/sites-available/www.example.com.conf
Você então abriria esse arquivo em um editor de texto como este; Estou usando nano
como exemplo, mas fique à vontade para usar o editor de texto de sua preferência:
sudo nano /etc/apache2/sites-available/www.example.com.conf
E então coloque conteúdo semelhante a este em www.example.com.conf
:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Feche e salve esse arquivo e use a2ensite
assim para que o sistema defina um link simbólico para sites-available
assim sites-enabled
:
sudo a2ensite www.example.com.conf
Ou, se desejar, você pode usar manualmente ln -s
para definir um link simbólico como este:
ln -s /etc/apache2/sites-available/www.example.com.conf /etc/apache2/sites-enabled/www.example.com.conf
Quando terminar, basta recarregar o Apache assim:
sudo service apache2 reload
E se por algum motivo reload
não funcionar, basta forçar uma reinicialização assim:
sudo service apache2 restart
A vantagem de usar reload
antes restart
é que se houver um erro de digitação em um arquivo de configuração, o Apache reportará um erro, mas não carregará os arquivos de configuração. Isso significa que seu servidor web Apache ainda estará funcionando com base no último arquivo de configuração estável carregado.
O risco é que se você forçar um restart
e houver um erro de digitação em um arquivo de configuração, o Apache estará morto porque restart
força um serviço completo stop
seguido por um start
. E se isso start
engasgar, o servidor estará morto até que o erro de digitação/problema de configuração seja resolvido.
Responder2
Verifique seu httpd.conf
arquivo, ele deve conter uma linha como Include conf/*.conf
. Verifique se é um curinga ou um arquivo fixo (como 000-default.conf
).
Além disso, verifique se seus novos arquivos conf correspondem ao padrão curinga e estão armazenados na mesma pasta que o arquivo 000-default.conf
.
Finalmente, existem distribuições Apache onde eles têm arquivos conf disponíveis e ativos, então em alguns casos é necessário um link virtual para que funcione