
Um meine Beschreibung meines Problems direkt zu sehen, siehe dieProblemTeil.
Kontext:
XUbuntu 14.10 und Apache 2.4.10 werden ausgeführt.
Ich bin ziemlich neu bei Apache, also versuche ich, einen einfachen virtuellen Host einzurichten ... mit einigem Erfolg, aber ich habe immer noch ein Problem. Ich habe die Dokumentation gelesen und kann nicht finden, was mit meiner Konfiguration nicht stimmt. Ich möchte zwei virtuelle Hosts konfigurieren:meinname.comUndwww.penguin.com.
Aufbau
Hier ist eine kurze Beschreibung (nicht erschöpfend) meiner aktuellen Konfiguration.
/etc/apache2/apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options +Indexes
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/flashlight/>
AllowOverride All
</Directory>
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
/etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/>
AuthName "Mon domaine"
AuthType Basic
AuthUserFile /etc/apache2/users.passwd
Options +Indexes
Options FollowSymLinks
AllowOverride None
Require valid-user
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/meinname.conf
<VirtualHost 127.0.0.2:80>
ServerName myname.com
ServerAlias www.myname.com
DocumentRoot /var/www/html/myname
<Directory /var/www/html/myname>
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
/etc/apache2/sites-enabled/penguin.conf
<VirtualHost 127.0.0.3:80>
ServerName penguin.com
ServerAlias www.penguin.com
DocumentRoot /var/www/html/penguin
<Directory /var/www/html/penguin>
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Beide virtuellen Hosts wurden wie in der Apache-Dokumentation beschrieben mit aktiviert a2ensite
. Apache wurde mit neu gestartet /etc/init.d/apache2 graceful
. In /var/www/html/penguin
und /var/www/html/myname
ich habe einfache index.html
Dateien erstellt, um zu überprüfen, ob ich mich auf einem virtuellen Host befinde oder nicht.
Schließlich habe ich Folgendes geändert, /etc/hosts
um Folgendes einzuschließen:
127.0.0.1 localhost
127.0.0.2 myname.com
127.0.0.3 penguin.com
Um die Konfiguration zu überprüfen, führe ich aus apachectl -S
und kann Folgendes sehen:
VirtualHost configuration:
127.0.0.3:80 penguin.com (/etc/apache2/sites-enabled/penguin.conf:1)
127.0.0.2:80 myname.com (/etc/apache2/sites-enabled/myname.conf:1)
*:80 www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
Problem
penguin.com
Nachdem ich nun zwei virtuelle Hosts konfiguriert habe, versuche ich, auf sie zuzugreifen. Wenn ich versuche , in meinem Browser (Firefox) darauf zuzugreifen , wird /var/www/html/index.html
anstelle von angezeigt /var/www/html/penguin/index.html
. Ich muss explizit schreiben, penguin.com/index.html
um die richtige Indexseite anzuzeigen.
Aber wenn ich zugreife myname.com
, wird der richtige Index bereitgestellt!?
Wenn ich diese Sites mit Chrome aufrufe, tritt dieses Problem außerdem nicht auf und ich sehe direkt die richtige Indexseite.
Gibt es ein Problem mit meiner Apache-Konfiguration? Oder glauben Sie, dass es nur mit Firefox zusammenhängt (vielleicht liest es nicht /etc/hosts
richtig)?
BEARBEITEN
Ich habe nur vergessen zu erwähnen, dass ich beim Zugriff auf die Seite über die IP (127.0.0.2/3) das gleiche Problem in Firefox habe (nur 127.0.0.2 funktioniert).
Mit wget
bekomme ich die Dateien wie erwartet. Ich vermute also, dass es an den Browsern und nicht an der Apache-Konfiguration liegt.
BEARBEITEN2
Um das Problem zu „lösen“, habe ich die Loopback-Adressen in /etc/hosts durch meine lokale IP-Adresse ersetzt. Außerdem habe ich die VirtualHost-Deklaration <VirtualHost *:80>
in beiden Dateien durch ersetzt. Funktioniert jetzt einwandfrei!
Ich frage mich immer noch, warum Firefox bei Angabe der vollständigen Loopback-IP-Adresse nicht den richtigen Index abrufen konnte.
Entschuldigen Sie den langen Beitrag!
Danke
Antwort1
In diesem Fall überprüft Firefox als letzte Option zur Namensauflösung Ihre /etc/hosts.
Sie können diesen Workaround ausprobieren.
- Öffnen Sie Firefox und geben Sie
about:config
die URL ein. - Suchen Sie
keyword.enabled
und setzen Sie es auf „False“. - Stellen Sie sicher, dass in /etc/nsswitch.conf
hosts
der Eintragfiles
die erste Option ist.