_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

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

Луис Макайо
источник