¿Cómo deshabilitar todos los hosts virtuales apache?
-
06-07-2019 - |
Pregunta
Estoy escribiendo un script de shell para hacer alguna configuración del servidor web. Necesito deshabilitar todos los hosts virtuales actualmente activos. a2dissite
no acepta múltiples argumentos, por lo que no puedo hacerlo
a2dissite `ls /etc/apache2/sites-enabled`
¿Debo usar find
? ¿Es seguro eliminar manualmente los enlaces simbólicos en / etc / apache2 / sites-enabled
?
Solución
¿Su script es solo Debian? Si es así, puede eliminar de forma segura todos los enlaces simbólicos en sitios habilitados, que funcionará siempre que todos los sitios se hayan escrito correctamente, en el directorio de sitios disponibles.
Por ejemplo:
find /etc/apache2/sites-enabled/ -type l -exec rm -i "{}" \;
lo protegerá contra alguien que realmente haya escrito un archivo en lugar de un enlace simbólico en ese directorio.
(eliminar el -i de rm para un script automático, por supuesto)
Otros consejos
Después de un poco más de investigación, descubrí que a2dissite
es solo un script de shell, y básicamente solo llama a rm
. Entonces, al igual que otras respuestas, estoy de acuerdo en que es seguro hacerlo
rm /etc/apache2/sites-enabled/*
ubuntu 12.04lts / ubuntu 16.04lts
Puede hacer lo siguiente [Nota: es posible que necesite permiso de root sudo a2dissite]
a2dissite *
O
a2dissite
Y te pedirá las que quieras hacer
cuando haya deshabilitado completamente los sitios, reinicie el servidor apache2
sudo systemctl restart apache2
o simplemente vuelva a cargar la configuración de Apache sin un reinicio completo:
sudo service apache2 reload
Para eliminar el archivo host simplemente elimínelo. Si solo quiere inhabilitar el sitio, use
sudo a2dissite sitename
Reiniciar apache2
sudo /etc/init.d/apache2 reload
Nuevamente para eliminarlo (eliminarlo) completamente del sistema,
sudo rm /etc/apache2/sites-available/sitename
También lo deshabilitaría primero antes de eliminar el archivo
Puede simplemente eliminar los enlaces simbólicos o alejar todo el directorio. No hay una base de datos especial u otros metadatos además de esos enlaces.
Nunca uso 'a2dissite' y siempre elimino y creo los enlaces en / etc / apache2 / sites habilitado manualmente, así que sí, diría que es bastante seguro.
Aquí está mi solución, primer tipo:
# a2dissite
(escriba este comando sin ningún argumento, le pedirá que elija la siguiente línea)
Sus opciones son: sitioA sitioB sitioC sitioD
¿Qué sitio (s) desea desactivar (comodines ok)?
Ahora simplemente copie toda la lista de sitios anterior ( sitioA sitioB sitioC sitioD ) y péguela como su respuesta, luego Ingrese.
El resultado de salida sería:
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
Este enfoque nos ayudará a optar por elegir una larga lista de nombres de sitios que deben eliminarse o estar intactos.
puede editar httpd.conf y eliminar la línea de inclusión para los hosts virtuales (en la parte inferior del archivo)
Aparentemente, puedes instalar el último Ubuntu;)