Uso el servidor Ubuntu 16.04.2 con Apache2, en el que almaceno mis sitios web personales.
Para habilitar todos mis archivos conf en /etc/apache2/sites-available
(además de 000-default.conf
y ssl-default.conf
), fui /var/www/html
y ejecuté a2ensite
.
Entonces me dijeron:
Your choices are:
000-default default-ssl domain.tld1 domain.tld2 domain.tld3 domain.tld4
Which site(s) do you want to enable (wildcards ok)?
Luego hice Ctrl+ con el Cobjetivo de ejecutar otra cosa.
Estoy buscando una manera de habilitar automáticamente todas las confs del sitio, sin mencionar una específica --- Solo quiero ejecutar un comando que habilitará todas las confs del sitio que yo mismo agregué.
*.conf
extensión. O bien, a2ensite se quejaría de que el sitio no existeNecesita navegar
/etc/apache2/sites-available
y luego ejecutar el comando:Permitirá todos los sitios en el directorio. (los archivos deberían ser algo así como xxx.conf)
Y luego vuelva a cargar apache usando
sudo service apache2 reload
.Entonces su secuencia de comando debería ser así:
fuente
default-ssl.conf
... Esto está claro en la salidaEnabling site default-ssl.
dpkg -S
para ver si el archivo de configuración es de un paquete.No importa cuál sea nuestra ubicación actual, el comando
sudo a2ensite "*.conf"
intentará habilitar todos los archivos de configuración ubicados en/etc/apache2/sites-available/
.A continuación, podemos usar
a2dissite 000-default.conf default-ssl.conf
para deshabilitar las configuraciones predeterminadas de Apache y luego podemos usarsystemctl restart apache2.service
para reiniciarlo.Podemos ejecutar todo esto como un solo comando:
Algo más, podemos crear un comando personalizado a través de una función en bash:
Ahora tenemos el comando , diseñado para hacer este trabajo. Para hacer que este comando sea permanente, debemos colocar las líneas anteriores en la parte inferior del archivo y luego . El siguiente script simple realizará esta tarea:
a2ensites
~/.bashrc
source
fuente
*
comodín se está expandiendo antes de pasar ala2ensite
comando en mi caso. Sin embargo, esto funcionasudo a2ensite "*.conf"
.a2ensite '*.conf'
funciona correctamente en su sistema?La ejecución
a2ensite /var/www/html/*/
hará que Apache habilite cada conf de sitio que tenga el mismo nombre que el directorio del sitio.Como efecto secundario, también intentará hacer coincidir los directorios del sitio que no coinciden con los archivos conf del sitio, como se predice en el siguiente resultado, pero creo que esto puede ignorarse de manera segura:
Es probable que deba reiniciar Apache después de habilitar los archivos conf:
fuente
/etc/apache2/sites-available
carpeta para configuraciones para sus sitios. Una vez que los habilita a través de a2ensite, se vinculan automáticamente/etc/apache2/sites-enabled
. Lo que está haciendo en este momento es bastante extraño y todos los que tienen acceso a su servidor web pueden ver sus configuraciones./var/www/html
ya que ese es el DocumentRoot del sitiodefault.html
. Entonces, en tu caso, parece que estás ejecutando las configuraciones allí ... Es como comer con la boca abierta, no hagas eso ;-)./var/www/html
como tu carpeta de configuración. NVM entonces. Lo que realmente necesitas es solo unfind ./ -type f -and -not -name "*default*" -exec a2ensite {} \;
copia y pega las siguientes líneas en el nombre del archivo
apache_enable.sh
y dar el comando read + execute a
apache_enable.sh
y ejecutar el script usando el usuario rootfuente
Mueva las configuraciones predeterminadas a otra carpeta y luego * debería funcionar para usted como lo desee.
Vaya a la carpeta "sitios disponibles" ya que solo funciona en esta carpeta.
fuente