Tengo un ordenador Ubuntu 14.10 que se utiliza para pruebas de sitios web locales, no sirve a Internet. En él, tengo siete sitios web configurados. Sin embargo, cuando accedo a dos de los siete, obtengo la Apache2 Ubuntu Default Page
en lugar de mi propia página de índice.
Por lo que sé, he configurado los siete usando exactamente el mismo proceso, así que no sé qué les falta a estos dos. Además, en mi directorio de registros de Apache, tengo dos archivos de registro, error
y access
para cada uno de los dos sitios que se comportan mal, pero todos ellos están vacíos. Cuando reinicio el servicio apache2
, no hay errores. He vuelto sobre mis pasos varias veces y no puedo ver ninguna diferencia entre los sitios que funcionan y los que no.
¿Qué opciones tengo para diagnosticar este problema? ¿Puedo forzar registros de error más detallados de alguna manera? ¿Existe algún otro registro que pueda consultar?
Aquí hay un ejemplo de un archivo .conf
para uno de los sitios que funcionan mal:
<VirtualHost *:80>
ServerName www.local_example.com
ServerAlias local_example.com
ServerAdmin [email protected]
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>
Pruebe lo siguiente
**Activar registros detallados
sudo nano /etc/apache2/apache2.conf
Localice la variable LogLevel, y actualícela del valor por defecto warn a info o debug. debug 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 herramienta de comprobación de sintaxis
apache2ctl -t
Comprobación de definiciones de hosts virtuales
apache2ctl -S
Resulta que el problema eran los permisos.
Cuando se almacena el sitio web en un directorio fuera de /var/www
y conectado por enlace simbólico, entonces el directorio de origen, y su directorio padre tienen que tener permisos de 755
.
Por alguna razón desconocida, los dos sitios que se comportaban mal tenían permisos diferentes, y ejecutando chmod -R 755
en el directorio del sitio web, y en su directorio padre, se solucionó el problema.