я получаю
[Вторник, 24 апреля 12:12:55 2012] [ошибка] [клиент 127.0.0.1] клиент отклонен из-за конфигурации сервера: / labs / Projects / Nebula / bin /
Моя структура каталогов выглядит так (я использую Symfony 2, должна быть похожая структура для других веб-фреймворков)
У меня есть 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>
Интересно, в чем проблема и как я могу это исправить?
Ответы:
В Apache 2.4.3 (или, может быть, чуть раньше) добавлена новая функция безопасности, которая часто приводит к этой ошибке. Вы также увидите сообщение журнала в форме «клиент отклонен из-за конфигурации сервера». Эта функция требует авторизованного пользователя для доступа к каталогу. Он включен DEFAULT в httpd.conf, который поставляется вместе с Apache. Вы можете увидеть включение функции с помощью директивы
Это в основном говорит, чтобы запретить доступ всем пользователям. Чтобы устранить эту проблему, либо удалите запрещенную директиву (или, что намного лучше), добавьте следующую директиву в каталоги, к которым вы хотите предоставить доступ:
как в
источник
Satisfy Any
послеRequire all granted
Satisfy any
в этом контексте? Я спрашиваю, потому что я вырывал свои волосы здесь, и добавляя это, у меня все работало. Странно то, что приложение работало с существующей записью vhost до недавнего обновления Apache до2.4.9
. Еще раз удивительно, что он отлично работает на другом сервере с теми же версиями app / vhost и Apache / PHP. Хотя разные серверы - AWS Linux и Ubuntu 14.10 соответственно. Странно ... Я думаю, мне нужно сравнитьhttpd.conf
файлы каждого сервера, чтобы увидеть, есть ли разница в конфигурации ...htaccess
путь, к которому вы пытаетесь получить доступОК, я использую неправильный синтаксис, я должен использовать
источник
Require all granted
, как предлагает @ Phil-LВ Apache 2.4 старый синтаксис авторизации доступа устарел и заменен новой системой, использующей Require .
То, что вы хотите, это что-то вроде следующего:
Это разрешит соединения, которые исходят либо с локального хоста, либо с IP-адресов, начинающихся с «192.168.1».
Также доступен новый модуль, который позволяет Apache 2.4 распознавать старый синтаксис, если вы не хотите сразу обновлять свою конфигурацию:
источник
Можете ли вы попробовать изменить «Разрешить с 127.0.0 192.168.1 :: 1 localhost» на «Разрешить от всех». Если это решит вашу проблему, вы должны быть менее ограничены в отношении того, откуда можно запрашивать контент
источник
Вот мой файл виртуального хоста Symfony 1.4 на Debian, который отлично работает.
Если вы не хотите ограничивать доступ к определенному диапазону IP-адресов, например, localhost, используйте это:
Mod_authz_host отвечает за фильтрацию диапазонов IP - адресов. Вы можете посмотреть подробные вещи там.
Но, возможно, проблема может быть связана с некоторой неверной конфигурацией в вашем "apache2.conf".
На какой ОС работает апач?
источник
если у вас есть
в httpd.conf, то убедитесь, что у нас есть
как в строке ниже в httpd.conf
источник
У меня была эта проблема с использованием Vesta CP, и для меня хитрость была в том, чтобы удалить .htaccess и снова попытаться получить доступ к любому файлу.
Это привело к регенерации файла .htaccess, после чего я смог получить доступ к своим файлам.
источник
В моем случае ключ был:
в определении vhost. Надеюсь, это кому-нибудь поможет.
источник
Этот код работал для меня ..
Надеюсь, что это помогает другим
источник