Хорошо, не знаю, почему это происходит.
Итак, я получил сообщение
The Alias directive in /etc/httpd/conf.d/awstats.conf at line 3 will probably never match because it overlaps an earlier Alias.
и
The Alias directive in /etc/httpd/conf.d/welcome.conf at line 18 will probably never match because it overlaps an earlier Alias.
но вот первые 15 строк моего /httpd/httpd.conf
файл
ServerSignature Off
ServerTokens Prod
ServerRoot "/etc/httpd"
Listen *:80
Listen *:443
User apache
Group apache
ServerAdmin hostmaster@localhost
ServerName 192.168.1.200:80
Include conf.d/*.conf <- THIS IS WHERE INCLUDES BEGIN
Include conf.modules.d/*.conf
Абсолютно нет Alias or ScriptAlias
записи перед строкой 14, которая является Include conf.d/*.conf
.
Так что на самом деле впервые Alias
запись встречается, фактически находится в awstats.conf
файл под /conf.d/*.conf
.
Почему тогда я получаю эту ошибку?
Сервер работает, это просто досада.
РЕДАКТИРОВАТЬ: сделал grep Alias на /etc/httpd/conf.d/*.conf
и вот результаты ->
/etc/httpd/conf.d/awstats.conf:Alias /awstatsclasses "/usr/share/awstats/wwwroot/classes/"
/etc/httpd/conf.d/awstats.conf:Alias /awstatscss "/usr/share/awstats/wwwroot/css/"
/etc/httpd/conf.d/awstats.conf:Alias /awstatsicons "/usr/share/awstats/wwwroot/icon/"
/etc/httpd/conf.d/awstats.conf:ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/"
/etc/httpd/conf.d/welcome.conf:Alias /.noindex.html /usr/share/httpd/noindex/index.html
/etc/httpd/conf.d/welcome.conf:Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
/etc/httpd/conf.d/welcome.conf:Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
/etc/httpd/conf.d/welcome.conf:Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
/etc/httpd/conf.d/welcome.conf:Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png
Проще всего понять, что Apache генерирует один файл конфигурации внутри, путем синтаксического анализа основного httpd.conf построчно и включает внешние разделы в местах, где Include
или IncludeOptional
директива используется, прежде чем перейти к следующей строке.
Когда подстановочные знаки используются в Include
пути файловой системы, включаемые в файлы, разбираются в лексикографическом (словарном) порядке, conf.d/alice.conf
придет раньше conf.d/bob.conf
.
Во многих директивах порядок имеет значение, в некоторых используется последнее вхождение, в других - большая область действия, прежде чем победит меньшая область и т. Д.
Правила для Псевдоним директивы:
Псевдонимы и перенаправления, возникающие в разных контекстах, обрабатываются так же, как и другие директивы, в соответствии с стандартные правила слияния. Но когда несколько псевдонимов или перенаправлений происходят в одном контексте (например, в одном разделе), они обрабатываются в определенном порядке.
Первый, все перенаправления обрабатываются до псевдонимов обрабатываются, поэтому запрос, соответствующий
Redirect
илиRedirectMatch
никогда не будут применяться псевдонимы. Во-вторых, псевдонимы и перенаправления обрабатываются в том порядке, в котором они появляются в файлах конфигурации, с первое совпадение имеет приоритет.По этой причине, когда две или более из этих директив применяются к одному и тому же подпутью, вы должны сначала указать наиболее конкретный путь, чтобы все директивы имели эффект. Например, следующая конфигурация будет работать должным образом:
Alias /foo/bar /baz Alias /foo /gaq
Но если бы указанные выше две директивы были поменяны местами,
/foo
Псевдоним всегда будет соответствовать до/foo/bar
Псевдоним, поэтому последняя директива будет проигнорирована.
Для устранения неполадок хороший первый старт в вашем случае - это простой grep -E "Alias|Redirect" conf.d/*.conf
У меня была аналогичная ошибка из-за неправильной конфигурации хоста. Чтобы решить эту проблему, просто добавьте:
<VirtualHost *:80>
Here Host Configuration
</VirtualHost>
Проверьте настройку vhost. В моем случае ошибка вызвала неправильную конфигурацию виртуального хоста. Выглядело это так: /etc/apache2/sites-available/hitman.conf
ServerAdmin marek@localhost
ServerName hitman
DocumentRoot /home/marek/public_html/hitman
правильная конфигурация:
<VirtualHost *:80>
ServerAdmin marek@localhost
ServerName hitman
DocumentRoot /home/marek/public_html/hitman
</VirtualHost>