_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?

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.


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 root@youremail.com
    <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 youremail@yourdomain.ltd
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!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.