configurar - ¿Cómo depurar una configuración de host virtual de Apache?
crear virtual host apache linux (7)
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).
El problema no es realmente la mala configuración sino cómo resolverla.
¿Alguien tiene buenos consejos para resolver este tipo de problema rápidamente?
Algunas más informaciones.
El archivo conf predeterminado es este:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
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 de host virtual que no se aplica es esta:
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://ip.ip.ip.ip:8088/
ProxyPassReverse / http://ip.ip.ip.ip:8088/
ServerName wiki.mydomain.com
</VirtualHost>
Comprobación de sintaxis
Para verificar los archivos de configuración de errores de sintaxis:
# Fedora, RHEL, CentOS, OSX
httpd -t
# Debian, Ubuntu
apache2ctl -t
# MacOS
apachectl -t
Lista de hosts virtuales
Para enumerar todos los hosts virtuales y sus ubicaciones:
# Fedora, RHEL, CentOS, OSX
httpd -S
# Debian, Ubuntu
apache2ctl -S
# MacOS
apachectl -S
Aquí hay un comando que creo que podría ser de alguna ayuda:
apachectl -t -D DUMP_VHOSTS
Obtendrá una lista de todos los fantasmas, sabrá cuál es el predeterminado y se asegurará de que su sintaxis sea 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. ;)
Encontré mi propio error, no agregué el nombre del archivo de registro: ErrorLog / var / log / apache2
Y esta ruta: Directorio "/ usr / share / doc /" No contenía fuentes de sitios web.
Después de cambiar estos dos, todo funcionó. Curiosamente, apache no emitió ningún error, simplemente no abrió mi sitio web en silencio en mi Mac OS Sierra.
Recientemente tuve algunos problemas con VirtualHost. Utilicé a2ensite
para mover habilitar un host, pero antes de ejecutar un reinicio (lo que mataría al servidor si fallaba) ejecuté
apache2ctl -S
Lo que le da algo de información sobre lo que está sucediendo con sus hosts virtuales. No es perfecto, pero ayuda.
Si está tratando de depurar la configuración de su host virtual, puede encontrar el conmutador de línea de comando Apache -S útil. Es decir, escriba el siguiente comando:
httpd -S
Este comando arrojará una descripción de cómo Apache analizó el archivo 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 del programa httpd para ver otras opciones de línea de comando).
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!