J'essaie d'ajouter un deuxième hôte virtuel à ma configuration apache, mais je n'arrive pas à obtenir le nouvel hôte virtuel à utiliser.
Mon httpd.conf
contient juste la ligne suivante:
ServerName radiofreebrighton.org.uk
J'ai également un ports.conf
fichier qui contient les éléments suivants:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
Listen 443
</IfModule>
J'ai deux fichiers dans sites-available
lesquels ont été liés sites-enabled
par a2ensite
:
- radiofreebrighton.org.uk
- trafalgararches.co.uk
Le contenu du premier est:
<VirtualHost _default_:80>
DocumentRoot /home/tom/www
ServerAdmin [email protected]
ServerName radiofreebrighton.org.uk
ServerAlias www.radiofreebrighton.org.uk
<Directory /home/tom/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel error
CustomLog /var/log/apache2/access.log combined
Alias /wiki /home/tom/www/mediawiki/index.php
</VirtualHost>
Le contenu de ce dernier est:
<VirtualHost *:80>
DocumentRoot /home/tom/tata-www
ServerAdmin [email protected]
ServerName trafalgararches.co.uk
ServerAlias www.trafalgararches.co.uk
<Directory /home/tom/tata-www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
logLevel error
ErrorLog /var/log/apache2/error.log
</VirtualHost>
Mais chaque fois que je demande une page à trafalgararches.co.uk, je reçois une page de radiofreebrighton.org.uk. Pourquoi cela pourrait-il arriver? Comment puis-je le réparer?
Modifier:
Configuration de l'hôte virtuel tel que compris par apache:
tom@rfb:/usr/local$ apache2ctl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server radiofreebrighton.org.uk (/etc/apache2/sites-enabled/radiofreebrighton.org.uk:1)
port 80 namevhost radiofreebrighton.org.uk (/etc/apache2/sites-enabled/radiofreebrighton.org.uk:1)
port 80 namevhost trafalgararches.co.uk (/etc/apache2/sites-enabled/trafalgararches.co.uk:1)
Syntax OK
(Glané via apache2ctl -S
aka httpd -S
.)
apache-2.2
virtualhost
Tom Wright
la source
la source
ServerName
etServerAlias
. Assurez-vous également d'avoir redémarré Apache.NameVirtualHost *:80
quelque part dans votre configuration?Réponses:
Eh bien, cette question a plus d'un an, mais je suis tombé sur un "problème" similaire. Cela peut être évident, mais n'oubliez pas de redémarrer le service apache après avoir activé l'hôte virtuel supplémentaire. Voir, après l'exécution
a2ensite
pour le deuxième hôte virtuel, la sortie deapache2ctl -S
montrera que les deux sites sont disponibles (et l'un d'eux est la valeur par défaut), même si vous n'avez pas rechargé Apache.Disons que vous avez deux hôtes virtuels - site1 et site2. Vous exécutez
a2ensite site1
puis rechargez le service apache. Vous pouvez maintenant y accéderhttp://site1
et c'est la valeur par défaut. Maintenant vous exécuteza2ensite site2
, mais oubliez de redémarrer apache. La sortie deapache2ctl -S
sera:Mais lorsque vous essayez de charger
http://site2
, il charge en fait le site par défaut (site1), car la configuration n'est pas chargée.la source
J'ai eu un problème similaire où mes vhosts supplémentaires sur le port 443 (SSL / HTTPS) étaient tous dirigés vers le répertoire du premier vhost répertorié. Apache ignorait essentiellement la propriété servername et ne correspondait que sur le port ip :.
Il s'avère que la commande «NameVirtualHost *: 443» me manquait pour activer l'hébergement virtuel nommé pour le port 443.
'NameVirtualHost *: 443' n'a besoin d'être appelé qu'une seule fois et doit être défini au-dessus de vos vhosts pour le port 443. J'ai mis ma définition dans le fichier ports.config pour qu'elle ressemble à:
N'oubliez pas de redémarrer apache après toute modification.
la source
NameVirtualHost
génère ce message au démarrage:AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/ports.conf
Mes 2 cents: comme je dois m'en tenir à une IP (je ne veux pas que le site soit servi sur tous les réseaux installés), il est arrivé qu'après que l'IP privée locale du serveur ait changé, j'ai oublié de la changer ici:
NameVirtualHost 192.168.100.20:80 <VirtualHost 192.168.100.20:80>
Bien sûr, ce n'est pas un problème Apache de vous faire savoir que l'IP n'existe pas localement.
la source
Tom, regarde ici http://httpd.apache.org/docs/2.0/en/mod/core.html#namevirtualhost
Donc, ça devrait aller si vous changez la valeur par défaut en adresse IP de votre serveur.
la source
Je trouve la réponse d'ici: http://alexking.org/blog/2007/11/01/apache-2-only-serves-first-virtual-host
Mettez 2 servername dans la même balise 1 VirtualHost comme ci-dessous:
J'ai fini par avoir des problèmes avec le deuxième site parce que j'avais deux blocs de balises VirtualHost.
la source
J'ai eu ce problème lors de la migration de sites vers un nouveau serveur Ubuntu 16. Après un peu de grattage de tête, j'ai réalisé que le module SSL n'était pas activé par défaut, donc tout ce qui se trouve à l'intérieur des
<IfModule mod_ssl.c>
blocs est bien sûr ignoré en silence.Il y a des années, j'ai enveloppé tous mes vhosts SSL dans cette condition, et cette fois, je venais de copier les fichiers de configuration sur le nouveau serveur.
Je l'ai corrigé en activant le module:
la source
J'ai découvert que la source de ce problème était une entrée / etc / hosts sur mon serveur avec l'URL pointant vers l'IP externe du serveur.
À un moment donné, je dois l'avoir configuré avant que DNS ne soit prêt, j'ai donc entré une entrée / etc / hosts sur mon serveur pointant vers sa propre IP externe:
Ensuite, j'ai configuré un ServerAlias sur un site existant pour "vhost.example.com"
Mais je ne pouvais rien faire pour empêcher Apache de servir le site default-ssl.conf pour les demandes SSL à vhost.example.com. Le port 80 HTTP fonctionnait bien, mais le SSL montrait toujours le site par défaut à la place. À la fin, ce fil SO m'a amené à essayer "apachectl -S" qui montre les sites et finalement j'ai pu le comprendre.
Donc, si vous obtenez le site SSL par défaut au lieu du site que vous attendez, assurez-vous que vous n'avez pas ajouté l'adresse IP externe de votre serveur dans une entrée / etc / hosts! Une chose assez étrange à faire avec le recul, mais j'espère que cela aide quelqu'un d'autre!
la source