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

Apache2 Default переопределяет виртуальный хост

У меня есть сервер Ubuntu 12.10 LTS, на котором запущен apache2 с простой установкой wordpress. Я создал виртуальный хост в / etc / apache2 / sites-available и использовал a2ensite для его включения. Два дня все работало нормально.

Сегодня утром я проснулся, чтобы проверить сайт, и оказалось, что виртуальный хост вообще не работает. Он продолжал переходить на сайт по умолчанию в apache2.

Вот мой конфиг:

дефолт

<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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

виртуальный хост: domain.com

<VirtualHost *:80>
     ServerAdmin me@domain.com
     ServerName domain.com
     ServerAlias www.domain.com
     DocumentRoot /srv/www/domain.com/public_html/
     ErrorLog /srv/www/domain.com/logs/error.log
     CustomLog /srv/www/domain.com/logs/access.log combined
</VirtualHost>

Как видите, у меня две отдельные конфиги без конфликтов. Но apache2 продолжает возвращаться к сайту по умолчанию вместо vhost на основе имени. Мой файл / etc / hosts правильный и имеет полное доменное имя и имя хоста, указывающие на общедоступный IP-адрес. Это произошло в одночасье.

Я запустил a2dissite на domain.com, перезагрузил apache2, затем a2ensite на domain.com безрезультатно. В итоге мне пришлось a2dissite конфигурацию по умолчанию. Как только я это сделал, сайт domain.com прекрасно подошел к моему сайту wordpress.

Есть идеи, почему это произошло? Я много лет запускал apache2 и nginx и никогда не испытывал проблем с виртуальным хостингом. Это немного странно. Мне не нужно отключать сайт по умолчанию, чтобы другой мой виртуальный хост работал.

Есть предположения?

Попробуйте добавить

ServerName localhost

в виртуальный хост по умолчанию. Также вы можете временно отключить <Каталог /> раздел с виртуального хоста по умолчанию, он кажется бесполезным.