Como desativar todos os hosts virtuais do apache?
-
06-07-2019 - |
Pergunta
Eu estou escrevendo um script shell para fazer alguma configuração do servidor web. Eu preciso desativar todos os hosts virtuais ativas no momento. a2dissite
não aceita vários argumentos, por isso eu não posso fazer
a2dissite `ls /etc/apache2/sites-enabled`
Devo usar find
? É seguro excluir manualmente os links simbólicos em /etc/apache2/sites-enabled
?
Solução
É apenas o seu roteiro Debian? Se assim for, você pode excluir com segurança todos os links simbólicos em sites-enabled, que irá trabalhar enquanto todos os sites foram escritos corretamente, no diretório sites-available.
Por exemplo:
find /etc/apache2/sites-enabled/ -type l -exec rm -i "{}" \;
irá protegê-lo contra alguém que tenha realmente escrito um arquivo em vez de um link simbólico no diretório.
(remover a -i de rm para um script automático, é claro)
Outras dicas
Depois de um pouco mais de pesquisa, descobri que a2dissite
é apenas um shell script, e que basicamente apenas chama rm
. Assim, como outras respostas, eu concordo que é seguro fazê-
rm /etc/apache2/sites-enabled/*
ubuntu 12.04lts / ubuntu 16.04lts
Você pode apenas fazer o seguinte [NB: você pode precisar de permissão raiz sudo a2dissite]
a2dissite *
ou
a2dissite
E vai pedir-lhe o que você quer fazer
quando você tem locais completamente deficientes reiniciar apache2 servidor
sudo systemctl restart apache2
ou simplesmente recarregar apache configuração sem uma reinicialização completa:
sudo service apache2 reload
Para remover o arquivo host basta apagá-lo. Se você só quer dissable o site, o uso
sudo a2dissite sitename
Restart apache2
sudo /etc/init.d/apache2 reload
novamente para remover (excluir)-lo completamente do sistema,
sudo rm /etc/apache2/sites-available/sitename
Também gostaria de desativá-lo primeiro antes de excluir o arquivo
Você pode simplesmente apagar os links simbólicos, ou mover o diretório inteiro de distância. Não há banco de dados especial ou outros metadados além daquelas ligações.
Eu nunca uso 'a2dissite' e sempre apagar e criar os links em / etc / apache2 / sites-habilitado manualmente então sim, eu diria que é bastante seguro.
Aqui está a minha solução, primeiro tipo:
# a2dissite
(digite este comando sem nenhum argumento, ele levaria a pedir-lhe escolher a próxima linha)
As suas opções são: SiteA SiteB SiteC situada
Qual site (s) que você quer desabilitar (wildcards ok)?
Agora que você acabou de copiar todos lista de sites acima ( SiteA SiteB SiteC situada ) e colar em como sua resposta, em seguida, Enter.
O resultado saída seria:
removing dangling symlink /etc/apache2/sites-enabled/siteA.conf
removing dangling symlink /etc/apache2/sites-enabled/siteB.conf
removing dangling symlink /etc/apache2/sites-enabled/siteC.conf
removing dangling symlink /etc/apache2/sites-enabled/siteD.conf
Esta abordagem vai nos ajudar a opcional para optar por uma longa lista de nomes de site deve ser removido ou intacta.
Você pode editar o httpd.conf e excluir a linha para os hosts virtuais incluem (na parte inferior do arquivo)
Aparentemente, você pode simplesmente instalar o mais recente do Ubuntu;)