2011-08-23 18 views
34

Mam dwie nazwy domen, dwa certyfikaty ssl i dwa adresy IP. Próbuję skonfigurować dla nich pliki apache virtualhost.NameVirtualHost *: 80 nie ma VirtualHosts

Po pierwsze, wykomentowałem wszystkie wystąpienia "NameVirtualHost" i "Listen" dla portów 80 i 443. Następnie wykonałem następujące czynności z moimi plikami hostów wirtualnych.

plik VirtualHost dla Domena1:

NameVirtualHost 1.1.1.1:80 
Listen 1.1.1.1:80 
Listen 1.1.1.1:443 
<VirtualHost 1.1.1.1:80> 
    ServerName domain1.com 
    ... 
</VirtualHost> 
<VirtualHost 1.1.1.1:443> 
    ... 
</VirtualHost> 

VirtualHost plik dla DOMAIN2:

NameVirtualHost 2.2.2.2:80 
Listen 2.2.2.2:80 
Listen 2.2.2.2:443 
<VirtualHost 2.2.2.2:80> 
    ServerName domain2.com 
    ... 
</VirtualHost> 
<VirtualHost 2.2.2.2:443> 
    ... 
</VirtualHost> 
+0

* NameVirtualHost * jest przestarzała i nie jest już wymagana jest. – andreszs

Odpowiedz

27

Gdzieś w konfiguracji, prawdopodobnie w domyślnym pliku konfiguracyjnym Apache (myślę /etc/apache2/httpd.conf w Ubuntu ktoś może skorygować w komentarzach), to linia wyglądająca następująco:

NameVirtualHost *:80 

# Also 
Listen 80 
Listen 443 

Komentarz je, aw swoim VirtualHost plików konfiguracyjnych, dodać:

Listen 111.111.111.111:80 
Listen 222.222.222.222:80 
# If also using SSL 
Listen 111.111.111.111:443 
Listen 222.222.222.222:443 

NameVirtualHost 111.111.111.111:80 
NameVirtualHost 222.222.222.222:80 

W wielu konfiguracjach domyślny Apache, dyrektywy Listen i NameVirtualHost są dostarczane z symboli wieloznacznych lub globalnie zastosowanie do wszystkich interfejsów sieciowych. Ponieważ używasz wielu adresów IP powiązanych z różnymi konfiguracjami, musisz być bardziej konkretny w swoich dyrektywach konfiguracyjnych niż domyślny plik konfiguracyjny twojej dystrybucji.

+0

+1 ... brzmi dobrze. implimenting. wkrótce Cię powiadomię. – Jay

+0

/etc/apache2/httpd.conf jest pusty. /etc/apache2/httpd.conf nie ma "NameVirtualHost" ani "Listen". Nadal poszukuje. – Jay

+12

@Jay wypróbuj 'grep -r Posłuchaj/etc/apache2' i' grep -r NameVirtualHost/etc/apache2' –

41

Zignorowałem ten sam błąd przez 2 miesiące, gdy miałem serwer Ubuntu. Znalazłem ten post ładnie rozwiązany błąd. Dziękujemy Michael! Podobnie jak Ty, Jay, znalazłem winnego w pliku /etc/apache2/ports.conf. Próbowałem po prostu tak:

# NameVirtualHost *:80
ja tylko wykomentowane tej linii i żadnych innych zmian i nie więcej

„NameVirtualHost *: 80 nie ma VirtualHosts”

+6

Świetnie! Ja też! Rozwiązany! – flaab

+0

Jego działanie .... Many Many Thanks –

Powiązane problemy