Вопрос: Предупреждение о запуске Apache 2: NameVirtualHost *: 80 не имеет VirtualHosts


Когда мой сервер Ubuntu Apache (Apache 2) запускается, появляется предупреждающее сообщение, которое гласит:

[warn] NameVirtualHost *:80 has no VirtualHosts

Тем не менее, веб-сервер работает нормально. Что я могу ошибаться в настройках моего сайта, чтобы он дал мне это предупреждение?

Соответствующий файл конфигурации (расположенный в /etc/apache2/sites-available) читается как (детали удалены для краткости)

<VirtualHost *>
    <Location /mysite>
        # Configuration details here...
    </Location>

    # Use the following for authorization.
    <LocationMatch "/mysite/login">
        AuthType Basic
        AuthName "My Site"
        AuthUserFile /etc/sitepasswords/passwd
        Require valid-user
    </LocationMatch>
</VirtualHost>

Может ли тот факт, что я использую <Location> быть частью проблемы?


66
2018-04-30 18:16


Источник




Ответы:


+ Изменить

<VirtualHost *>

читать

<VirtualHost *:80>

Или его (NameVirtualHost *: 80) добавляется дважды в ваш файл-конфиг apache2. (По умолчанию его добавлено в файле ports.conf)

Это должно устранить ошибку.

В стороне: вы не должны игнорировать эту ошибку. Конфигурация Apache, особенно когда виртуальные хосты виртуального хоста (например, Include /etc/httpd/vhosts.d/*) нестабильны. Это означает, что вы не контролируете порядок загрузки ящиков явно, поэтому по умолчанию для IP-адреса становится тот, который загружается первым, что может привести к непреднамеренным последствиям.

Одним из примеров этого является то, что по умолчанию для этого IP-адреса будет доступен IP-адрес, а не его имя, Это может привести к утечке информации в google, ссылающейся на IP-адрес вашего сайта, а не на имя, которое может ввести в заблуждение для клиентов.

Ошибка NameVirtualHost выше может быть намеком на то, что apache загрузил вещи не оптимальным способом, поэтому вы не должны игнорировать его.


53
2018-05-10 03:30



Успешно справился! Спасибо, что поняли! - Kit Roed
Вы можете установить vhost по умолчанию следующим образом: <VirtualHost _default_ thehostname.com> - Amy B


Это может быть потому, что у вас есть директива NameVirtualHost в нескольких местах.

Я не знаю о других дистрибутивах, но в Ubuntu / Debian конфигурация Apache разделяется на несколько файлов, поэтому вам нужно будет проверить, где находится дублирование (httpd.conf, apache2.conf, ports.conf, conf.d / *).

О, и я нашел этот большой ресурс с дополнительной информацией: Общие неполадки Apache,


51
2018-04-30 18:21



Ссылка, которую вы дали, выглядит как отличный ресурс для понимания нюансов конфигурационных файлов Apache. Благодаря! - Kit Roed
Благодаря! Это была моя проблема - я создал virtual.conf для NameVirtualHost, не зная, что это уже было в ports.conf - rcampbell
Спасибо. Та же проблема здесь, в конфигурации сервера Ubuntu по умолчанию: ports.conf содержит NameVirtualHost : 80 и не должны повторяться в сайтах с включенными / файлы конфигурации! - DrSAR
В моем случае эта проблема была связана с тем, что убунту NameVirtualHost *:80 оба в ports.conf И в conf.d/virtualhosts, который кажется ошибкой Ubuntu. - fluffy
удивительно!!! большое спасибо - In God I Trust


В окне Debian / Lenny: В файле /etc/apache2/ports.conf имеется дополнительный оператор NameVirtualHost - это может послужить причиной этой проблемы (в / etc / apache2 / sites-available / default) есть и тот же оператор. Я прокомментировал это заявление и ошибка исчезла.


9
2017-07-19 08:12





У вас есть имяVirtualHost без соответствующей записи VirtualHost.

Это, как правило, не смертельно, просто информативная ошибка.


3
2018-04-30 18:22





Это потому, что ваша строка NameVirtualHost имеет номер порта на нем (:80), но в разделах VirtualHost нет.


3
2018-04-30 18:42





AS Rune упоминает, что в системах Debian имяVirtualHost появляется во многих файлах - ports.conf, conf.d / virtual.conf и, возможно, в ваших собственных файлах conf int int-available

Убедитесь, что он существует в одном месте как NameVirtualHost *: 80 (мой находится в conf.d / virtual.conf), и предупреждения должны идти.

Как уже упоминалось, вам также необходимо, чтобы направление VirtualHost для каждого доступного сайта имело этот формат <VirtualHost *:80>


2
2017-11-15 14:19





У меня та же проблема, но я отключу сайт Apache по умолчанию в какой-то момент. Я печатаю что-то вроде

# a2dissite default

После того, как я попытаюсь перезапустить Apache 2, я получаю следующее сообщение:

"[warn] NameVirtualHost *: 80 не имеет VirtualHosts"

Затем я снова включу «по умолчанию» сайт Apache 2, и все снова работает, используется следующая команда:

# a2ensite default

Это все люди!


2
2018-03-31 19:53



Это был лучший совет. - jini
Удивительный совет, я запускаю zpanelCP и ничего не работал, но это. благодаря ! :) - Eliran Efron