Apache2 "Вимагати всіх наданих" не працює


12

У мене є нова установка Apache2 на тестуванні Debian і налаштований віртуальний хост у такий каталог:

<Directory "/path/to/project">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

Однак він показує мені 403 заборонену помилку, коли я отримую доступ до неї, і журнал помилок показує:

[Mon Sep 23 22:07:57.249276 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of Require all denied: denied
[Mon Sep 23 22:07:57.249349 2013] [authz_core:debug] [pid 8599] mod_authz_core.c(802): [client 127.0.0.1:49057] AH01626: authorization result of <RequireAny>: denied
[Mon Sep 23 22:07:57.249361 2013] [authz_core:error] [pid 8599] [client 127.0.0.1:49057] AH01630: client denied by server configuration: /path/to/project/some_file

Чому він показує "результат" Вимагати всіх відмовлено: відмовлено ", якщо я використовую " Вимагати всіх наданих " ?

Ці файли читаються будь-яким користувачем, і на всякий випадок я без спроби змінив власника на Apache (www-data). Також хост за замовчуванням http://localhostпрацює нормально, а phpmyadmin також http://localhost/phpmyadminпрацює.

Вся допомога, яку я знайшов в Інтернеті, стосується заміни директиви замовлення на вимогу. Я вже це зробив. Що може бути проблемою зараз?


Мені це здається правильним. Ви впевнені, що це не якась інша директива, яка більш конкретна із вимогою "Усі потрібні"?
Річард Солт

Відповіді:


5

Тут можна спробувати дві речі:

1) Запустіть, apachectl -tщоб перевірити правильність синтаксису вашого файлу.

2) Запустіть, apachectl -Sщоб показати, які файли аналізуються.

Наприклад, ви можете редагувати /usr/local/etc/apache2/2.4/httpd.conf, і це правильно? ... але якщо ви запустите apachectl -S, ви можете побачити:

VirtualHost configuration:
*:80                   localhost (/private/etc/apache2/extra/httpd-vhosts.conf:23)

тобто. Віртуальний хост переосмислює ваш httpd.conf і може містити власний Require all deniedабо подібний.


3

Ви налаштували авторизацію, але аутентифікацію не було. Тож як "Потрібно вимагати всіх" надасть доступ усім автентифікованим користувачам, ваші користувачі насправді не підтверджують автентифікацію.


9
То де вам слід встановити автентифікацію? Не дуже зрозуміло ...
edi9999

2
Це технічно правильно, але це не відповідає на питання. Require all grantedспеціально дозволяє отримати доступ і не потребує ніякої автентифікації. Немає сенсу аутентифікувати, коли ви метафорично відчиняєте двері.
Martijn Heemels

2

Оскільки ви використовуєте AllowOverride Allдирективу, ви також можете мати .htaccessфайл у /path/to/project/. Цей може містити переорієнтовану директиву.

Перевірте також, якщо у VHost для primeple немає іншого параметра.


Я боровся з цією помилкою. Після багато перегляду всіх файлів конфігурації Apache я знайшов файл .htaccess з недійсним вмістом. Жодне з повідомлень не вказувало на це.
Дастін Батлер

1

Після встановлення Wampserver 32 у мене виникло те саме питання, що його Apache відхилив.

Я перевіряв і намагаюся змінити httpd.confфайл різними способами протягом 3 днів без везіння, обходячи всі підручники Apache та Інтернет-форуми з відомою помилкою:

AH01630: клієнту відмовлено в налаштуваннях сервера

Я був повністю впевнений, що не визначив жодного VirtualHost, і жодного з них не було помічено у файлі httpd.conf.

Нарешті, я налаштував сервер на файл помилок "налагодження", який дав мені більш цікаве повідомлення:

AH01626: результат авторизації Require local: відхилено

що в свою чергу веде мене на цю посаду.

І ось це було приховано у C:\wamp\bin\apache\apache2.4.18\conf\extra\httpd-vhosts.confфайлі: небажаний VirtualHost з явним "Вимагати локальним", який, звичайно, відхиляв усі мої запити з-за сервера.

Тепер я випорожнив цей файл, поки мені може знадобитися будь-який VirtualHost, і він прекрасно працює. Зрештою, мені здається, що Wampserver досить дивно не лише попередньо налаштувати цей файл без повідомлення користувача, але встановити значення за замовчуванням, щоб "сервер" нічого не міг обслуговувати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.