_default_ VirtualHost перекрываются на порт 80


10

Я добавил 2 виртуальных хоста в мой файл apache2 conf, как показано ниже:

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

Я тогда получил ошибку после перезапуска apache, который я получаю:

[warn] перекрытие VirtualHost по умолчанию на порту 80, первое имеет приоритет

Поискал в гугле и они сказали раскомментировать строку ниже, так что я сделал:

NameVirtualHost *:80

Перезапустите, и теперь я не получаю ошибку, но оба сайта переходят на первый сайт.

работает Centos5. Как мне решить эту проблему?

Ответы:


13

Вы определенно хотите, чтобы NameVirtualHost не комментировался. Это говорит о том, что ваш сервер должен обслуживать различные виртуальные хосты на основе имен Doman, используемых для его достижения. Вот почему вы видите, что все запросы переходят на первый сайт после его удаления.


1
Да, я сделал это, и это все еще не работает.
Дэвид

Разве он не обслуживает сайт site2.com даже вместе с ним? Похоже, что ваше предупреждение просто говорит о том, что ваш первый VirtualHost является сайтом по умолчанию для непревзойденных имен. По сути, именно так работают виртуальные хосты.
Кристофер Карел

1
После того, как я не прокомментировал эту строку, я не получил предупреждение, и оба сайта все еще переходят на site1
David

Возможно ли, что ваш браузер только что кэшировал содержимое сайта site1 в домене site2? Попробуйте очистить кеш или сделать правильное обновление. (ctrl + F5)
Кристофер Карел

1

Я уже исправил эту проблему с CWP

просто зайдите в /usr/local/apache/conf/sharedip.conf

установите этот флажок * в вашем 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>

затем перейдите в /usr/local/apache/conf.d/vhost.conf и убедитесь, что каждый виртуальный хост выглядит следующим образом

# 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

это работает для меня!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.