Apache: клиент отклонен конфигурацией сервера

144

Я получаю

[Tue Apr 24 12:12:55 2012] [ошибка] [клиент 127.0.0.1] клиент отказался от конфигурации сервера:/labs/Projects/Nebula/bin/

Моя структура каталогов выглядит как (я использую Symfony 2, должна быть аналогичной структурой для других веб-фреймворков)

Изображение 513

У меня есть установка vhosts вроде:

<VirtualHost nebula:80>
    DocumentRoot "/labs/Projects/Nebula/web/"
    ServerName nebula
    ErrorLog "/var/log/httpd/nebula-errors.log"
</VirtualHost>

<Directory "/labs/Projects/Nebula/">
    Options All
    AllowOverride All
    Order allow,deny
    Allow from 127.0.0 192.168.1 ::1 localhost
</Directory>

Интересно, в чем проблема и как это исправить?

  • 1
    @JiewMeng: Вы, вероятно, должны принять ответ Фила. Кажется, это проблема с большинством установок Apache сегодня (Apache 2.4). Благодарю.
Теги:
.htaccess

9 ответов

11
Лучший ответ

OK Я использую неправильный синтаксис, я должен использовать

Allow from 127.0.0.1
Allow from ::1
...
  • 0
    Для apache> 2.4 это само по себе не может работать для меня. Но это работает, когда объединено с Require all granted , как предложено @ Phil-L
407

Apache 2.4.3 (или, возможно, чуть раньше) добавил новую функцию безопасности, которая часто приводит к этой ошибке. Вы также увидите сообщение журнала формы "клиент, отказавшийся от конфигурации сервера". Эта функция требует авторизации пользователя для доступа к каталогу. Он включен DEFAULT в httpd.conf, который поставляется с Apache. Вы можете увидеть включение функции с директивой

Require all denied

В основном это говорит о запрете доступа ко всем пользователям. Чтобы устранить эту проблему, либо удалите директиву denied (или намного лучше), добавьте следующую директиву в каталоги, к которым вы хотите предоставить доступ:

Require all granted

как в

<Directory "your directory here">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
  • 2
    Смотрите также: httpd.apache.org/docs/current/upgrading.html#access
  • 8
    может также понадобиться добавить Satisfy Any после Require all granted
Показать ещё 4 комментария
4

В Apache 2.4 старый синтаксис авторизации доступа устарел и заменен новой системой, используя Требовать.

То, что вы хотите, это что-то вроде следующего:

<Directory "/labs/Projects/Nebula/">
  Options All
  AllowOverride All
  <RequireAny>
    Require local
    Require ip 192.168.1
  </RequireAny>
</Directory>

Это позволит подключать, исходящие от локального хоста или от ip-адресов, начинающихся с "192.168.1".

Существует также новый модуль, который позволяет Apache 2.4 распознавать старый синтаксис, если вы не хотите сразу обновлять конфигурацию:

sudo a2enmod access_compat
1

У меня была проблема с Vesta CP, и для меня трюк был удален .htaccess и снова попытался получить доступ к любому файлу.

Это привело к восстановлению файла .htaccess, а затем мне удалось получить доступ к моим файлам.

1

если у вас есть

Allow from All

в httpd.conf, тогда убедитесь, что у нас есть

index.php

как в следующей строке в httpd.conf

DirectoryIndex index.html index.php
1

Здесь мой файл виртуального хоста symfony 1.4 на debian, который отлично работает.

  <Directory /var/www/sf_project/web/>
    Options All Indexes FollowSymLinks    
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>

Если вы не хотите ограничивать доступ к определенному диапазону ip, например. localhost:

Allow from 127.0.0.0/8

mod_authz_host отвечает за фильтрацию диапазонов ip. Вы можете найти там подробные вещи.

Но может быть, проблема может быть связана с какой-то неправильной конфигурацией в вашем "apache2.conf".

В какой ОС работает apache?

1

Можете ли вы попробовать изменить "Разрешить с 127.0.0 192.168.1:: 1 localhost" на "Разрешить от всех". Если это исправляет вашу проблему, вам нужно меньше ограничиться тем, где можно запросить контент из

0

В моем случае ключ был:

AllowOverride All

в определении vhost. Надеюсь, это поможет кому-то.

-2

Этот код работал у меня.

 <Location />
Allow from all
Order Deny,Allow
</Location> 

Надеюсь, что это поможет другим людям.

  • 1
    Это абсолютно не рекомендуется добавлять в конфигурацию apache.
  • 0
    Это позволяет apache получить доступ к каждому файлу на компьютере. Очень плохо для безопасности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню