_default_ VirtualHost nakłada się na port 80

10

Dodałem 2 wirtualne hosty do mojego pliku apache2 conf, jak poniżej:

<VirtualHost *:80>
    DocumentRoot /var/www/html/site1
    ServerName www.site1.com
    ServerAlias site1.com
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot /var/www/html/site2
    ServerName www.site2.com
    ServerAlias site2.com
</VirtualHost>

Następnie dostałem błąd po ponownym uruchomieniu Apache, otrzymuję:

[warn] domyślnie VirtualHost nakłada się na port 80, pierwszy ma pierwszeństwo

Przeszukałem google i powiedzieli, żeby odkomentować poniższy wiersz, więc zrobiłem:

NameVirtualHost *:80

Uruchom ponownie, a teraz nie otrzymuję błędu, ale obie strony przechodzą do pierwszej witryny.

z systemem Centos5. Jak rozwiązać ten problem?

David
źródło

Odpowiedzi:

13

Zdecydowanie chcesz, aby NameVirtualHost nie był komentowany. Mówi to Twojemu serwerowi do serwerów różnych wirtualnych hostów w oparciu o nazwy Doman używane do jego osiągnięcia. Dlatego widzisz, że wszystkie żądania trafiają do pierwszej witryny po jej usunięciu.

Christopher Karel
źródło
1
Tak, zrobiłem to i nadal nie działa.
David
Czy nawet nie obsługuje witryny site2.com? Wygląda na to, że Twoje ostrzeżenie mówi tylko, że Twój pierwszy VirtualHost jest domyślną witryną dla niedopasowanych nazw. Zasadniczo tak działają wirtualne hosty.
Christopher Karel,
1
Po odkomentowaniu tej linii nie otrzymuję ostrzeżenia, a obie strony nadal przechodzą na stronę 1
David
Czy to możliwe, że Twoja przeglądarka właśnie buforowała zawartość z witryny 1 w domenie witryny 2? Spróbuj wyczyścić pamięć podręczną lub odpowiednio ją odświeżyć. (ctrl + F5)
Christopher Karel
1

Naprawiłem już tę sondę za pomocą CWP

po prostu przejdź do /usr/local/apache/conf/sharedip.conf

zaznacz to * na swoim serwerze ip

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName yourdomainserver.ltd
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin [email protected]
    <IfModule mod_suphp.c>
        suPHP_UserGroup nobody nobody
    </IfModule>
</VirtualHost>
<Directory "/">
        AllowOverride All
        Allow from all
        Order Deny,Allow
</Directory>

następnie przejdź do /usr/local/apache/conf.d/vhost.conf i upewnij się, że każdy wirtualny host wygląda tak

# vhost_start chango.com.ve
<VirtualHost *:80>
ServerName yourdomain.ltd
ServerAlias www.yourdomain.ltd
ServerAdmin [email protected]
DocumentRoot "/home/yourdomain/public_html"
ScriptAlias /cgi-bin/ "/home/yourdomain/public_html/cgi-bin/
# 
# Custom settings are loaded below this line (if any exist)
# Include "/usr/local/apache/conf/userdata/yourdomain/yourdomain.ltd/*.conf    
</VirtualHost>^M
# vhost_end yourdomain.ltd

to działa dla mnie!

Luis Macayo
źródło