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

Ошибка Apache VirtualHost: недопустимое имя хоста

Раньше мне было довольно просто настроить VirtualHost для тестирования нового веб-приложения php для этого http.conf:

NameVirtualHost *:80

<VirtualHost *:80>
        DocumentRoot /opt/webgrind/www
        ServerName webgrind
</VirtualHost>
<VirtualHost *:80>
        DocumentRoot /opt/opencart/www
        ServerName opencart
</VirtualHost>

Мне просто нужно было перезапустить службу и получить доступ: http://webgrind/ или http://opencart/ (ничего не меняя в /etc/hosts)

Но что-то изменилось на сервере (CentOS 6), и теперь error.log состояния:

[error] avahi_entry_group_add_service_strlst("opencart") failed: Invalid host name
[error] avahi_entry_group_add_service_strlst("webgrind") failed: Invalid host name

И при доступе http://webgrind/ Я получаю ошибку страницы офлайн. Любые идеи?

Версия сервера: Apache / 2.2.15 (Unix) Сервер построен: 8 декабря 2011 18:10:49

Поскольку этот вопрос является первым, который появляется при поиске «AH02415: [strict] Invalid host name», я добавлю ответ, чтобы задокументировать время, которое я потратил сегодня, потому что большинство виртуальных хостов на моей машине разработки перестали работать (например, shop_one .web).

Я обновил Apache до версии 2.4.16-18.1 и, по-видимому, HttpProtocolOptions теперь по умолчанию Strict, тем самым отвергая мои локальные имена хостов, в которых есть '_' (подчеркивание) (и, возможно, имена OP).

Я знаю, что это неправильные имена хостов, но для локального / личного использования никому не повредит, поэтому я добавил строку:

HttpProtocolOptions Unsafe

в мой default-server.conf, и жизнь вернулась к тому, что было раньше. Смотрите также:

https://httpd.apache.org/security/vulnerabilities_24.html

https://unix.stackexchange.com/questions/340013/why-am-i-getting-400-bad-request/341306

При настройке виртуального хоста в apache служба разрешения имен на сервере не узнает об этом, поэтому вам придется либо обновить / etc / hosts, либо сделать что-то вроде:

curl -H 'Host: webgrind' 127.0.0.1

, чтобы переопределить поведение по умолчанию.