Назад | Перейти на главную страницу

Конфликт виртуального хоста Ubuntu 12.10

У меня на сервере 2 сайта. Один, к которому я обращаюсь через свой IP, x.x.x.x / site1. Другой - зарегистрированное доменное имя www.mysite.com.

Изначально у меня были только мои / и т.д. / apache / сайты-доступные / по умолчанию файл доступен, но когда я попытался загрузить любой из указанных выше сайтов, я только что получил /var/www/index.html вывод.

Я включил новый виртуальный хост для mysite.com со следующим кодом:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/mysite
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/mysite>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Mysite.com загружается только тогда, когда по умолчанию отключено, но затем x.x.x.x / site1 нет.

Итак, я включаю виртуальный хост по умолчанию, который имеет следующий код:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Сейчас, x.x.x.x / site1 работает, но mysite.com нет - вместо этого он загружает /var/www/index.html страница.

Я не понимаю, в чем проблема. Буду признателен за помощь.

Чтобы виртуальный домен работал, он должен знать, к какому хосту подключаться. В вашем http-запросе для браузера он устанавливает заголовок Host, например

Host: mysite.com

Итак, apache прочитает это, чтобы выяснить, какую запись vhost использовать. Вам нужно добавить что-то вроде

ServerName mysite.com www.mysite.com

На виртуальный хост mysite.com в <VirtualHost *:80>