Fehler, Warnungen und Probleme mit virtuellen Hosts unter Ubuntu

1352
Andrew

Ich habe wahrscheinlich etwas falsch eingestellt. Anscheinend habe ich immer Probleme beim Versuch, meine virtuellen Hosts richtig zu konfigurieren.

Diese Fehlermeldung wird nach dem Neustart von Apache angezeigt:

Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [Wed Oct 14 17:39:17 2009] [warn] VirtualHost site1.local:0 overlaps with VirtualHost site2.local:0, the first has precedence, perhaps you need a NameVirtualHost directive 

Warum verwendet es 127.0.1.1 für ServerName? Und warum funktioniert mein site2.local virtueller Host nicht?

Hier ist meine Hosts-Datei:

# /etc/hosts 127.0.0.1 localhost site1.local site2.local 127.0.1.1 andrew-laptop   # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 

In / etc / apache2 / sites-available habe ich 3 Dateien: default, site1.local und site2.local

Standard:

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> 

site1.local:

<VirtualHost site1.local> ServerAdmin webmaster@localhost ServerName admin DocumentRoot /home/andrew/Projects/site1/public CustomLog /var/log/apache2/site1-access.log combined <Directory /home/andrew/Projects/site1/public> Options FollowSymLinks AllowOverride All </Directory> </VirtualHost> 

site2.local:

<VirtualHost site2.local> ServerAdmin webmaster@localhost ServerName admin DocumentRoot /home/andrew/Projects/site2/public CustomLog /var/log/apache2/site2-access.log combined <Directory /home/andrew/Projects/site2/public> Options FollowSymLinks AllowOverride All </Directory> </VirtualHost> 

Wenn etwas falsch erscheint, lass es mich wissen. Bitte helfen Sie mir herauszufinden, was mit meinem Setup nicht stimmt.

0

2 Antworten auf die Frage

2
quack quixote

Hier ist ein Problem: In / etc / hosts ist Ihre localhosts-Zeile falsch. Du hast das:

# /etc/hosts 127.0.0.1 localhost site1.local site2.local 

Sie müssen folgendes haben:

# /etc/hosts 127.0.0.1 localhost.localdomain localhost 

Die oberste Zeile ist wichtig. Sie können site1.local und site2.local fast allem anderen zuweisen, aber die oberste Zeile muss beides localhost.localdomainund enthalten localhost.

Ich bin nicht sicher, was für schwarze Magie verantwortlich ist, aber in Ubuntu 9.04 und Debian 5.0.3 brechen die Dinge seltsam, wenn diese Zeile zu etwas anderem geändert wird. Meine kürzlich durchgeführte Debian-Installation hatte die gleichen Apache-Fehler (und einige andere interessante Fehler), bis ich meine eigenen Änderungen an dieser Zeile rückgängig machte.

Da Sie noch definieren müssen site1.localund site2.localkönnten Sie es wie folgt tun:

127.0.1.1 andrew-laptop site1.local site2.local 

Apache kann jedoch andere IP-Adressen für die Sites vorziehen, sodass Sie dies wahrscheinlich besser tun sollten:

127.0.1.1 andrew-laptop 127.0.1.2 site1.local 127.0.1.3 site2.local 

Das 127.0.0.0/8-Netzwerk ist ein Loopback, sodass Sie eine beliebige 127.xxx-Adresse auswählen können.

1
phoebus

Ich glaube, Sie sollten site1.local / site2.local als ServerName-Parameter in Ihren virtuellen Hostdateien verwenden ... zumindest funktioniert das bei mir.

Der ServerName-Standard 127.0.0.1 wird wahrscheinlich in der Datei apache2.conf festgelegt.

Und ändern Sie die & zu jmohr vor 15 Jahren 1