¿Por qué obtengo la página predeterminada de Ubuntu Apache2 en lugar de mi propia página index.html?


8

Tengo una computadora Ubuntu 14.10 que se usa para pruebas de sitios web locales , no está sirviendo a Internet. En él, tengo siete sitios web configurados. Sin embargo, cuando accedo a dos de los siete, obtengo el Apache2 Ubuntu Default Pagelugar de mi propia página de índice.

Por lo que puedo decir, configuré los siete usando exactamente el mismo proceso, por lo que no sé qué faltan estos dos. Además, en mi directorio de registros de Apache, tengo dos archivos de registro errory accesspara cada uno de los dos sitios que se comportan mal, pero todos están vacíos. Cuando reinicio el apache2servicio, no hay errores. He vuelto sobre mis pasos varias veces y no puedo ver ninguna diferencia entre los sitios de trabajo y los sitios que no funcionan.

¿Qué opciones tengo para diagnosticar este problema? ¿Puedo forzar registros de error más detallados de alguna manera? ¿Hay otro registro en algún lugar al que pueda hacer referencia?

Aquí hay un ejemplo de un .confarchivo para uno de los sitios que funciona mal:

<VirtualHost *:80>
   ServerName www.local_example.com
   ServerAlias local_example.com
   ServerAdmin address@example.com

   DocumentRoot /var/www/Websites/example.com
   <Directory /var/www/Websites/example.com/>
       Options Indexes FollowSymLinks MultiViews
       # pcw AllowOverride None
       AllowOverride All
       Order allow,deny
       allow from all
       # This directive allows us to have apache2's default start page
       # in /apache2-default/, but still have / go to the right place
       # Commented out for Ubuntu
       #RedirectMatch ^/$ /apache2-default/
   </Directory>

   ErrorLog /home/example/Apache_Logs/local_example.com_error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /home/example/Apache_Logs/local_example.com_access.log combined
   ServerSignature On

</VirtualHost>

2
¿Cómo creaste los hosts virtuales? ¿Los creaste agregando archivos a /etc/apache2/sites-available? Si es así, ¿los habilitó sudo a2ensite <your_site_name>? ¿El archivo de registro de error de Apache predeterminado tiene algo? ¿Y tiene un ServerAlias ​​o ServerName configurado en sus archivos de host virtual? Si deshabilita el sitio predeterminado sudo a2dissite 000-default(puede volver a habilitarlo con sudo a2ensite 000-default), ¿funciona? Además, ¿podría ser que olvidaste reiniciar Apache?
Dan

@ Dan, gracias por responder. Creé los sitios agregándolos a sites-available. El registro de errores predeterminado no tiene nada. Lo he definido ServerAliasen el archivo hosts. Inhabilité el 000-defaultsitio pero eso no cambió nada. Reinicié y volví a cargar Apache muchas veces.
Interlocutor

Cuando desactivó el sitio predeterminado y reinició Apache, todavía mostraba la página index.html predeterminada, ¿o mostraba una de un host virtual diferente? ¿Puedes publicar el contenido de uno de los archivos vhost que se comportan mal? Esto podría hacernos las cosas mucho más fáciles de ayudar.
Dan

@ Dan, gracias por responder. Cuando realicé el cambio que sugirió, como mencioné, nada cambió, lo que significa que mostró exactamente la misma página de índice predeterminada. He agregado un .confarchivo a mi pregunta.
Interlocutor

Respuestas:


8

Intenta lo siguiente

Habilitar registros detallados

sudo nano /etc/apache2/apache2.conf

Localice la variable LogLevel y actualícela desde la advertencia predeterminada a información o depuración. la depuración producirá la mayor cantidad de salida.

# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
# 
LogLevel debug

Reiniciar Apache

sudo service apache2 restart

Apache incluye una pequeña y agradable herramienta de verificación de sintaxis

apache2ctl -t

Comprobación de definiciones de host virtual

apache2ctl -S

Gracias por esta sugerencia. Configuré el nivel de registro para depurar, y todavía no tengo absolutamente ninguna entrada en los archivos de registro de errores. Los registros de acceso ahora se muestran cada vez que abro los sitios, pero nada más.
Interlocutor

6

Para mí, una de las sugerencias de @Dan lo resolvió.

sudo a2dissite 000-default.conf
service apache2 reload

Aparentemente, la configuración predeterminada del sitio anulaba mi configuración de vhost.


En otro servidor se comportó de manera diferente y se leyó index.php en lugar de index.html. Situación muy furtiva
Margus Pala

2

después de la instalación, index.html tiene una prioridad más alta, es por eso que aún ve la página predeterminada de Ubuntu, verifique esta carpeta var / www / html / rename o elimine esta página de manera simple.


1

Resulta que el problema eran los permisos.

Cuando está almacenando el sitio web en un directorio externo /var/wwwy conectado mediante un enlace simbólico, entonces el directorio fuente y su directorio principal deben tener permisos 755.

Por alguna razón desconocida, los dos sitios que se comportaron mal tenían permisos diferentes, y la ejecución chmod -R 755en el directorio del sitio web y su directorio padre resolvió el problema.


No debe ejecutarse chmod -R 755en un directorio porque todos los archivos allí se marcarán como "ejecutables" ...
Alexis Wilke

@AlexisWilke, ¿cuál es un mejor comando para configurar los permisos correctos?
Interlocutor

No es fácil cambiar los permisos de todos los directorios y no el estándar ... Sin findembargo, puede usarlo . Algo como esto: find top-dir-name -type d -exec chmod 755 {} \;.
Alexis Wilke
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.