El sitio no existe error para a2ensite


275

Tengo cmsplus.devdebajo /etc/apache2/sites-availablecon el siguiente código,

<VirtualHost *:80>
    ServerAdmin master@server.com
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

Ahora cuando lo uso sudo /usr/sbin/a2ensite cmsplus.dev, obtengo el error,

ERROR: Site cmsplus.dev does not exist!

Mi servidor web Apache/2.4.6 (Ubuntu)

¿Cómo resolver este problema?

Respuestas:


577

Resolvió el problema agregando .confextensión a los archivos de configuración del sitio.

Apache a2ensiteresulta en:

¡Error! El sitio no existe

Problema; Si encontró el error al intentar habilitar un sitio usando:

sudo a2ensite example.com

pero vuelve:

Error: example.com no existe

a2ensite es simplemente un script de Perl que solo funciona con nombres de archivo que terminan .conf

Por lo tanto, tengo que cambiar el nombre de mi archivo de configuración para example.comque se example.com.confpueda lograr de la siguiente manera:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

Éxito


25
¡Extraño! Esto solía funcionar bien sin una extensión en Ubuntu 12.04 y 12.10.
FloatingRock

Lo mismo para mi. Como dice Guilherme, apache2.conf cambió entre las versiones de ubuntu o Apache.
Nicolas Zozol

77
Como alternativa, creo que podría editar el archivo apache.conf. La línea relevante es "IncludeOptional sites-enabled / *. Conf" Elimine el .conf al final y volverá a lo que funcionó en 12.04. Creo que esto puede ser un cambio que Debian hizo que se introdujo en Ubuntu, pero no estoy seguro.
Josiah

2
¿Por qué esto responde 3ro? Esta es la forma correcta de hacerlo.
acabado

Ya me había rendido después de cambiar casi todo ... Recordaré agregar la extensión .conf de ahora en adelante ...
wtf8_decode

91

Probablemente haya actualizado su instalación de Ubuntu y una de las actualizaciones incluyó la actualización de Apache a la versión 2.4.x

En Apache 2.4.x, los archivos de configuración de vhost, ubicados en el directorio / etc / apache2 / sites-available, deben tener la extensión .conf.

Usando la terminal (comando mv), cambie el nombre de todos sus archivos de configuración existentes y agregue la extensión .conf a todos ellos.

mv /etc/apache2/sites-available/cmsplus.dev /etc/apache2/sites-available/cmsplus.dev.conf

Si obtiene un error de "Permiso denegado", agregue "sudo" delante de los comandos de su terminal.

No es necesario que realice ningún otro cambio en los archivos de configuración.

Habilite los vhost (s):

a2ensite cmsplus.dev.conf

Y luego vuelve a cargar Apache:

service apache2 reload

Sus sitios deberían estar en funcionamiento ahora.


ACTUALIZACIÓN: Como se mencionó aquí , una distribución de Linux que instaló cambió la configuración para incluir * .conf solamente. Por lo tanto, no tiene nada que ver con Apache 2.2 o 2.4


28

Hay otra buena manera, solo edite el archivo, apache2.confhay una línea al final

Incluir sitios opcionales habilitados / *. Conf

simplemente quite el .confal final, así

Incluir sitios opcionales habilitados / *

y reinicie el servidor.

(Probé esto solo en Ubuntu 13.10, cuando lo actualicé).


1
Hmm ... Probé esto en Ubuntu 14.04 y no funcionó. .confSin embargo, agregar a los archivos de configuración sí.
Clifton Labrum

extraño, tuve este error cuando actualicé mi ubuntu 12.04 a 13.10 (porque sustituí involuntariamente los archivos de configuración de apache). En la actualización 14.04, recordé no sustituir, y tuve problemas.
Guilherme

Esto realmente no es una buena manera. Los archivos en sitios habilitados son enlaces simbólicos a los archivos correspondientes en sitios disponibles y solo deben eliminarse para deshabilitar el sitio; de hecho, eso es lo que a2dissite hace que a2ensite habilita correspondientemente.
Dokbua

8

Acabo de tener el mismo problema. Yo diría que no tiene nada que ver con el apache.conf.

a2ensite debe haber cambiado: la línea 532 es la línea que aplica el sufijo .conf:

else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}

Si lo cambia a:

else {
    $dir    = 'sites';
    #$sffx   = '.conf';
    $sffx   = '';
    $reload = 'reload';
}

... funcionará sin ningún sufijo.

Por supuesto, no querrás cambiar el script a2ensite, pero cambiar el sufijo del archivo conf es la forma correcta.

Probablemente sea solo una forma de hacer cumplir el ".conf" -suffix.


Consulte también esta pregunta: askubuntu.com/questions/362682/…
cslotty el

7

Entonces ... la forma más rápida es cambiar el nombre de los nombres de configuración del sitio que terminan en ".conf"

mv /etc/apache2/sites-available/mysite /etc/apache2/sites-available/mysite.conf

a2ensite mysite.conf

Otras notas sobre comentarios anteriores:

  • IncludeOptional no se introdujo hasta apache 2.36: ¡hacer el cambio anterior seguido del reinicio en 2.2 dejará su servidor inactivo!

  • Además, la versión 2.2 a2ensite no se puede hackear como se describe

también, dado que el archivo disponible en su sitio es en realidad un archivo de configuración, de todos modos debería llamarse así.


En general , no reinicie los servicios (los servidores web son un tipo de servicio):

  • ¡la gente no puede encontrarlos si no están corriendo! Piense en Linux, no en MS Windows.

Los servidores pueden ejecutarse durante muchos años: actualización en vivo, recarga de configuración, etc.

La nube no significa que deba reiniciar para cargar un archivo de configuración.

  • Al cambiar la configuración de un servicio, utilice "recargar", no "reiniciar".

  • reiniciar detiene el servicio y luego inicia el servicio; si hay algún problema en su cambio a la configuración, el servicio no se reiniciará.

  • reload generará un error, pero el servicio nunca se cierra, lo que le brinda la oportunidad de corregir el error de configuración, que solo podría ser una mala sintaxis.

debian o ubunto [el nombre del servicio para este hilo es apache2]

service {service-name} {start} {stop} {reload} ..

otro sistema operativo se dejó como un ejercicio extra para el lector.


5

Funcionó después de agregar .confal archivo de configuración


2

Acabo de actualizar la versión de Ubuntu Server de 12.04 LTS a 14.04 LTS.

De hecho, como se dijo anteriormente, la extensión .conf de Apache 2.4.x es necesaria para los archivos vhost de los sitios web que residen en el directorio de sitios disponibles.

Antes de leer esta pregunta, no tenía idea de lo que estaba pasando con el servidor.

Muy buena solución.

En resumen, hice los siguientes pasos en la Terminal:

1) Acceder a la carpeta habilitada para sitios

$ cd /etc/apache2/sites-enabled

2) Debido a que el comando a2dissite no funcionará con archivos obsoletos (sin .conf), elimine los archivos antiguos del sitio web que se publicaron

$ sudo rm <my-old-website-without-.conf>

3) Cambie el nombre de los archivos vhost del sitio web cambiando su extensión agregando .conf al final

$ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf

4) Vuelva a publicar el nuevo y correcto archivo vhost

$ sudo a2ensite mywebsite.conf

5) ¡Consulta el sitio web en el navegador y diviértete! :)


1

En mi caso con Ubuntu 14.04.3 y Apache 2.4.7, el problema fue que copié site1.conf para hacer que site2.conf esté disponible, y al copiar, algo sucedió y no pude a2ensite site2.conf con el error descrito en el hilo .

La solución para mí fue renombrar site2.conf a site2 y luego renombrar nuevamente site2 a site2.conf. Después de eso pude a2ensite site2.conf.


1

Me doy cuenta de que ese no es el caso aquí, pero podría ayudar a alguien.

Verifique que no haya creado el archivo conf en / etc / apache2 / sites-enabled por error. Obtienes el mismo error.


-2

Intenta así ...

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin master@server.com
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

y agregue entrada en / etc / hosts

127.0.0.1 www.cmsplus.dev

reiniciar apache ..


Ahora me está dando la It workspágina predeterminada en lugar de la configuración.
devo

¿Tiene múltiples configuraciones de hosts virtuales? ¿Puedes publicar contenido de todo el archivo?
Balaji Perumal

3
Gracias, resolvió este problema simplemente agregando .confextensión a estos archivos de configuración del sitio.
devo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.