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?

Foi útil?

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;)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top