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 ?

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top