Ошибка Forbidden - You dont have permission to access / on this server на Apache2

Веб-сервер Apache является одним из самых популярных и широко используемых веб-серверов с открытым исходным кодом благодаря своей стабильности и надежности. Этот веб-сервер занимает огромный рынок, особенно на платформах веб-хостинга.

Как бы то ни было, после установки сайта вы можете получить в браузере ошибку «Forbidden – You don’t have permission to access / on this server». Это довольно распространенная ошибка, и многие пользователи сталкивались с ней при тестировании своего сайта. Так что же это за ошибка?

Демистификация ошибки Forbidden Error

Также называемая 403 Forbidden error, ошибка Apache „Forbidden Error“ – это ошибка, которая отображается на веб-странице, когда вы пытаетесь получить доступ к веб-сайту, который ограничен или запрещен. Обычно она выводится на экран браузера, как показано на рисунке.

Дополнительно ошибка может проявляться в браузере несколькими способами, как показано ниже:

  • HTTP Error 403 – Forbidden
  • Forbidden: You don’t have permission to access [directory] on this server
  • 403 Forbidden
  • Access Denied You don’t have permission to access
  • 403 forbidden requests prohibited by administrative rules

Что же вызывает такие ошибки?

Ошибка „403 Forbidden Error“ возникает по следующим основным причинам:

1. Неправильные разрешения на файлы/каталоги

Эта ошибка может возникать из-за неправильных разрешений на файлы/папки в каталоге webroot. Если стандартные права доступа к файлам не настроены таким образом, чтобы предоставить пользователям доступ к файлам сайта, то вероятность появления этой ошибки в браузере очень высока.

2. Неправильная настройка конфигурационных файлов Apache

Эта ошибка также может быть связана с неправильной настройкой одного из конфигурационных файлов Apache. Это может быть некорректно включенный параметр или отсутствие директив в конфигурационном файле.

Устранение ошибки 403 Forbidden Error

Если вы столкнулись с этой ошибкой, вот несколько шагов, которые вы можете предпринять для ее устранения.

1. Настроить права доступа к файлам & Владение каталогом Webroot

Известно, что неправильные разрешения на файлы и владение каталогом ограничивают доступ к файлам сайта. Поэтому, во-первых, назначьте права доступа к файлам рекурсивно до каталога webroot, как показано на рисунке.

Каталог webroot всегда должен иметь права на выполнение, а файл index.html – только чтение.

cd /path/to/webroot/directory $ sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;

Приведенная выше команда find используется для поиска всех каталогов (папок) и файлов внутри текущего каталога (.) и установки для них прав доступа 755 (каталоги) и 644 (файлы).

Дополнительно установите права собственности на файлы и каталоги для конкретного пользователя (tecmint) и группы www-data или apache с помощью команды chown, как показано на рисунке.

sudo chown -R tecmint:apache .

Затем перезагрузите или перезапустите веб-сервер Apache, чтобы изменения вступили в силу.

sudo systemctl restart apache2

или

sudo systemctl restart httpd

Если это не решило проблему, перейдите к следующему шагу:

2. Отрегулируйте директивы в главном конфигурационном файле Apache

Если вы работаете в Linux на базе Debian, то в главном конфигурационном файле Apache /etc/apache2/apache2.conf убедитесь, что у вас есть такой блок кода:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>
<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Сохраните и выйдите, а затем перезапустите Apache.

Если вы используете Apache в дистрибутивах на базе RHEL / CentOS, убедитесь, что у вас нет доступа к директории /var/www в /etc/httpd/conf/httpd.conf основного файла конфигурации Apache.

<Directory "/var/www">
    AllowOverride None
    Require all granted
</Directory>

Затем сохраните все изменения и перезагрузите Apache.

sudo systemctl reload apache2

или

sudo systemctl reload httpd

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)