Раньше мне было довольно просто настроить 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
, чтобы переопределить поведение по умолчанию.