web-dev-qa-db-fra.com

Comment déboguer une configuration d'hôte virtuel Apache?

Encore une fois, j'ai un problème avec la configuration de mon hôte virtuel Apache. (La configuration par défaut est utilisée à la place de celle spécifique).

Le problème n'est pas vraiment la mauvaise configuration, mais comment le résoudre.

Est-ce que quelqu'un a de bons conseils pour résoudre ce genre de problème rapidement?

Quelques informations supplémentaires.

Le fichier de configuration par défaut est celui-ci:

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>

Et la configuration de l'hôte virtuel qui ne s'applique pas est celle-ci:

<VirtualHost *:*>

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

</VirtualHost>
128
GaetanZ

Vérification de la syntaxe

Pour vérifier les erreurs de syntaxe dans les fichiers de configuration:

# Red Hat-based (Fedora, CentOS) and OSX
httpd -t

# Debian-based (Ubuntu)
Apache2ctl -t

# MacOS
apachectl -t

Liste des hôtes virtuels

Pour répertorier tous les hôtes virtuels et leurs emplacements:

# Red Hat-based (Fedora, CentOS) and OSX
httpd -S

# Debian-based (Ubuntu)
Apache2ctl -S

# MacOS
apachectl -S
179
sqren

Voici une commande qui, je pense, pourrait être utile:

apachectl -t -D DUMP_VHOSTS

Vous obtiendrez une liste de tous les hôtes virtuels, vous saurez lequel est celui par défaut et vous vous assurerez que votre syntaxe est correcte (identique à apachectl configtest suggéré par yojimbo87).

Vous saurez également où chaque vhost est déclaré. Cela peut être pratique si vos fichiers de configuration sont en désordre. ;)

27
Arnaud Massé

Si vous essayez de déboguer votre configuration d'hôte virtuel, le commutateur de ligne de commande Apache -S peut s'avérer utile. Autrement dit, tapez la commande suivante:

httpd -S

Cette commande affichera une description de la façon dont Apache a analysé le fichier de configuration. Un examen attentif des adresses IP et des noms de serveur peut aider à découvrir des erreurs de configuration. (Voir la documentation du programme httpd pour d'autres options en ligne de commande).

23
Michael Spector

J'avais un nouveau fichier de configuration VirtualHost qui ne s'affichait pas lors de l'utilisation de apachectl -S commande. Après beaucoup de mal à la tête, j'ai réalisé que mon fichier n'avait pas le suffixe ".conf". Une fois que j'ai renommé le fichier avec ce suffixe, mon Vhost a commencé à s'afficher et à fonctionner!

10
GreensterRox

Commencez par vérifier config fichiers pour les erreurs de syntaxe avec apachectl configtest puis examinez l’erreur Apache journaux .

10
yojimbo87

J'ai récemment eu quelques problèmes avec un VirtualHost. J'ai utilisé a2ensite pour activer un hôte mais avant d'exécuter un redémarrage (ce qui tuerait le serveur en cas d'échec), j'ai exécuté

Apache2ctl -S

Ce qui vous donne des informations sur ce qui se passe avec vos hôtes virtuels. Ce n'est pas parfait, mais ça aide.

6
Jacksonkr

J'ai trouvé ma propre erreur, je n'ai pas ajouté le nom du fichier journal: ErrorLog/var/log/Apache2
Et ce chemin: Répertoire "/ usr/share/doc /" Ne contenait pas de sources de sites Web.

Après avoir changé ces deux, tout a fonctionné. Fait intéressant, Apache n’a généré aucune erreur, mais n’a pas ouvert mon site Web en mode silencieux sur mon Mac OS Sierra.

1