_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, я отримую:

[попередження] за замовчуванням VirtualHost перекриття на порт 80, перший має перевагу

Пошукав google, і вони сказали, що вона не коментує рядок нижче, і я зробив:

NameVirtualHost *:80

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

працює Centos5. Як виправити цю проблему?

Відповіді:


13

Ви обов'язково хочете, щоб NameVirtualHost не коментувався. Це повідомляє вашому серверу сервер різних віртуальних хостів на основі Doman Names, використовуваних для його досягнення. Ось чому ви бачите, що всі запити під час видалення переходять на перший сайт.


1
Так, я це зробив, і це все ще не працює.
Девід

Чи належним чином він не обслуговує site2.com навіть при ньому? Це дійсно схоже на те, що ваше попередження просто зазначає, що ваш перший VirtualHost - це сайт за замовчуванням для не збігаються імен. Це по суті саме те, як працюють віртуальні хости.
Крістофер Карел

1
Після того, як прокоментували цей рядок, я не отримую попередження, і обидва сайти все ще переходять на сайт1
Девід

Чи можливо, що ваш веб-переглядач лише кеширував вміст 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 і переконайтесь, що кожен virtualhost виглядає так

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