Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

APACHE_403_FORBIDDEN Linux / DevOps

Траблшутинг ошибок 403 Forbidden в Apache: Directory, .htaccess и AllowOverride

Обновлено: 21.08.2026
  • Клиенты получают ошибку HTTP 403 Forbidden при попытке открытия директории или файла.
  • В error.log Apache появляется запись: AH01630: client denied by server configuration.
  • В error.log фиксируется: AH00670: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the Readlink of /var/www/... will not be allowed.

1. Анализ логов Apache

tail -n 30 /var/log/apache2/error.log  # Debian/Ubuntu
tail -n 30 /var/log/httpd/error_log    # RHEL/Rocky

2. Исправление политики контроля доступа Apache 2.4

Синтаксис Apache 2.2 (Order allow,deny) устарел. В /etc/apache2/sites-available/example.conf задайте актуальные директивы:

<Directory /var/www/html>
    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

3. Проверка прав файловой системы (POSIX Permissions)

Apache должен иметь права на чтение файлов и право execute (+x) на каждый родительский каталог в дереве путей:

# Установка владельца и базовых прав
chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

4. Исправление запрета Directory Index

Если в папке отсутствует index.html/index.php, а опция Options -Indexes выключена, Apache вернет 403. Укажите индексный файл:

DirectoryIndex index.php index.html

5. Проверка и перезагрузка

apachectl configtest && systemctl reload apache2
💡 Практика специалистов: Если права 755 выставлены, а Apache все равно отдает 403 с ошибкой Permission Denied, проверьте контексты SELinux (ls -Z) или ограничения AppArmor, блокирующие доступ демона к нестандартным путям (например, /home/user/public_html).

Частые вопросы (FAQ)

Что означает ошибка AH01630: client denied by server configuration?

В блоке <Directory> отсутствует директива 'Require all granted', либо глобальная конфигурация запрещает доступ (Require all denied), а локальный VirtualHost не переопределяет ее.

Зачем нужна опция AllowOverride All?

Директива AllowOverride All разрешает файлам .htaccess переопределять глобальные директивы маршрутизации (RewriteRule), авторизации и заголовков. При значении 'None' файлы .htaccess полностью игнорируются.

Полезные материалы
Рекомендуем