2011-03-29 11 views
101

Una vez más, tengo un problema con mi configuración de host virtual de apache. (Se usa la configuración predeterminada en lugar de la específica).¿Cómo depurar una configuración de host virtual de Apache?

El problema no es realmente la mala configuración, sino cómo resolverlo.

¿Alguien tiene buenos consejos para resolver este tipo de problema rápidamente?

Algunas informaciones más.

El archivo de configuración por defecto es la siguiente:

NameVirtualHost * 
<VirtualHost *> 
     ServerAdmin [email protected] 

     DocumentRoot /var/www/ 
     <Directory /> 
       Options FollowSymLinks 
       AllowOverride None 
     </Directory> 
     <Directory /var/www/> 
       Options Indexes FollowSymLinks MultiViews 
       AllowOverride None 
       Order allow,deny 
       allow from all 
     </Directory> 

     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
     <Directory "/usr/lib/cgi-bin"> 
       AllowOverride None 
       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
       Order allow,deny 
       Allow from all 
     </Directory> 

     ErrorLog /var/log/apache2/error.log 

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

     CustomLog /var/log/apache2/access.log combined 
     ServerSignature On 

    Alias /doc/ "/usr/share/doc/" 
    <Directory "/usr/share/doc/"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride None 
     Order deny,allow 
     Deny from all 
     Allow from 127.0.0.0/255.0.0.0 ::1/128 
    </Directory> 

</VirtualHost> 

Y la configuración del host virtual que no se aplica es la siguiente:

<VirtualHost *:*> 

ProxyPreserveHost On 
ProxyPass/http://ip.ip.ip.ip:8088/ 
ProxyPassReverse/http://ip.ip.ip.ip:8088/ 
ServerName wiki.mydomain.com 

</VirtualHost> 
+2

¿Quieres decirnos cuál es el problema? También podría ser útil mostrarnos su archivo conf. – davidstites

+1

¿Qué sistema operativo está utilizando? – EmCo

+0

ubuntu 8.04 LTS – GaetanZ

Respuesta

141

Sintaxis cheque

Para comprobar los archivos de configuración de errores de sintaxis: hosts virtuales

# Fedora, RHEL, CentOS, OSX 
httpd -t 

# Debian, Ubuntu 
apache2ctl -t 

# MacOS 
apachectl -t 

Lista

Para listar todos los hosts virtuales, y sus localizaciones:

# Fedora, RHEL, CentOS, OSX 
httpd -S 

# Debian, Ubuntu 
apache2ctl -S 

# MacOS 
apachectl -S 
+3

'-S' es un sinónimo de' -t -D DUMP_VHOSTS', por lo tanto, esos dos son los mismos –

+0

He actualizado la respuesta. ¡Gracias! – sqren

+0

Probablemente hasta tarde, pero me gustaría algunos comandos de Windows ... – GiantCowFilms

10

Primero echa un vistazo a config archivos de errores de sintaxis con apachectl configtest y luego mira en el error de apache logs.

+0

No tengo ningún error de sintaxis porque mi servidor se reinicia y vuelve a cargar la configuración sin ningún problema. No sé en qué registro puedo encontrar detalles sobre mi configuración. – GaetanZ

+0

Los registros de errores generalmente se encuentran en el archivo '/var/log/apache2/error.log'. – yojimbo87

+1

para apache2, el comando debe ser: "apache2ctl configtest" – eaykin

20

Si Está tratando de depurar su configuración de host virtual, puede encontrar el Apache -S com conmutador de línea mand útil. Es decir, escriba el siguiente comando:

httpd -S 

Este comando le devolverá una descripción de cómo Apache analiza el fichero de configuración. Un examen cuidadoso de las direcciones IP y los nombres de los servidores puede ayudar a descubrir errores de configuración. (Consulte los documentos para el programa httpd para otras opciones de línea de comando).

+9

En Apache2 esto es 'apache2ctl -S' – artfulrobot

+1

o alternativamente' APACHE_RUN_USER = www-data APACHE_RUN_GROUP = www- data/usr/sbin/apache2 -S' – rleir

20

Aquí hay un comando que creo que podría ser de alguna ayuda:

apachectl -t -D DUMP_VHOSTS 

Usted obtendrá una lista de todos los dominios virtuales, sabrá cuál es el que viene por defecto y que va a asegurarse de que su sintaxis es correcta (lo mismo que apachectl configtest sugerido por yojimbo87).

También sabrá dónde se declara cada vhost. Puede ser útil si tus archivos de configuración son un desastre. ;)

4

Recientemente tuve algunos problemas con VirtualHost. Solía ​​a2ensite para mover permiten una gran cantidad, pero antes de ejecutar un reinicio (que mataría al servidor en Despiste) me encontré

apache2ctl -S 

que le da algo de información acerca de lo que está pasando con sus anfitriones virtuales. No es perfecto, pero ayuda.

7

Tenía un nuevo archivo de configuración de VirtualHost que no se mostraba al usar el comando apachectl -S. Después de mucho rascarse la cabeza, me di cuenta de que mi archivo no tenía el sufijo ".conf". Una vez que renombré el archivo con ese sufijo, ¡mi Vhost comenzó a mostrar y funcionar!

1

he encontrado mi propio error, no añadí nombre de archivo de registro: ErrorLog/var/log/apache2
Y este camino: directorio "/ usr/share/doc /" no contenía fuentes de sitios web .

Después de cambiar estos dos, todos funcionaron. Curiosamente, apache no emitió ningún error, simplemente no abrió mi sitio web en silencio en mi Mac OS Sierra.

Cuestiones relacionadas