2
июнь
2025
Почему в веб сервере Apache возникает ошибка AH01630: client denied by server configuration
16:46

Почему в веб сервере Apache возникает ошибка AH01630: client denied by server configuration

2 июнь 2025 16:46

Решение проблемы с ошибкой AH01630 веб сервера Apache.

Симптомы

При открытии веб страницы при неправильной настройке прав возникает ошибка веб сервера AH01630.

В журнале доступа ошибки вида.

[Mon Jun 02 13:04:22.143071 2025] [authz_core:error] [pid 46931] [client 127.0.0.1:52900] AH01630: client denied by server configuration: /home/user/site/
[Mon Jun 02 13:05:49.982705 2025] [authz_core:error] [pid 47024] [client 127.0.0.1:44616] AH01630: client denied by server configuration: /home/user/site/index.php

Причина кроется в настройке конфигурации Apache.

Как воспроизвести ошибку?

sudo nano /etc/apache2/apache2.conf

        Options FollowSymLinks
        AllowOverride None
        Require all Denied

apache2

Ctrl+O, "Enter", Ctrl-X

systemctl restart apache2.service

Теперь при любой попытке открыть вебсайт будет выдаваться ошибка AH01630.

Как решить проблему?

1. Редактирование файла apache2.conf

В файле /etc/apache2/apache2.conf должно быть Require all Granted


        Options FollowSymLinks
        AllowOverride All  
        Require all Granted

Директива AllowOverride All - по желанию. Если None, то файлы .htaccess не действуют.

2. Включение модуля a2enmod vhost_alias_module для виртуальных хостов

sudo a2enmod vhost_alias
sudo a2enmod mod_authz_host
sudo systemctl restart apache2

Данная команду нужна для следующего пункта.

3. Редактирование файлов .conf в каталоге sites-available - файлы конфигурации виртуальных хостов

Права же доступа к сайтам и виртуальным каталогам ограничиваем в файлах

sudo nano /etc/apache2/sites-available/file.conf

В разделе описания виртуального хоста ищем раздел Directory - он описывает папку, где лежат документы PHP и права доступа со стороны Apache:


    Options Indexes MultiViews
    AllowOverride All
    Require all Denied
    Allow from 127.0.0.1

Здесь я ограничил доступ к тестовому серверу только с текущего компьютера - веб-сервера (localhost) 127.0.0.1.

Для разрешения полного доступа с любых IP-адресов, нужно убрать директиву "Allow from 127.0.0.1" и разрешить доступ отовсюду Require all Granted.

Начиная с Apache 2.4 изменился формат файла conf: удалены директивы "Order deny,allow". См. официальный список изменений между версиями 2.2 и 2.4.

Специально включать модуль authz_host командой sudo a2enmod authz_host не требуется, т.к. модули authz_host и authz_core включены по умолчанию.

Перезапуск службы Перечитывание файлов конфигурации веб-серера Apache после редактирования файлов .conf

sudo systemctl reload apache2.service

либо

sudo apachectl -k graceful

4. Проверка на скрытый файл .htaccess в домашнем каталоге сайта

Файлы .htaccess действуют на каждый запрос документа веб сервера. Файл должен размещаться в домашнем каталоге документов сайта и также может содержать устаревшие директивы Order deny,allow. Согласно официальной документации по переходу с Apache 2.2 на Apache 2.4, смешивание новых директив AllowOverride и старых "Order deny,allow" может привести к непредсказуемым последствиям.

Указывать хост для отладки веб сайта лучше в файле виртуальных хостов (.conf),
с помощью директивы "Allow from " в разделе , например:
Allow from 127.0.0.1

5. Права доступа веб-сервера к файлам

Установка корректных прав доступа на каталог ./site_dir и все файлы в нём.

cd ~
sudo chown -R www-data:www-data ./site_dir
sudo find site_dir/ -type d -exec chmod 755 {} \;
sudo find site_dir/ -type f -exec chmod 644 {} \;

6. Файл hosts

cat /etc/hosts | less

В нём ранее я ранее добавил строку вида
127.0.0.1 mysite

Где mysite - имя псевдонима сайта для виртуального хоста (соответствует директиве ServerName mysite
в файле /etc/apache2/sites-available/file.conf

Проверка

Проверка открытие веб страницы в браузере с префиксом http://mysite - веб-сайт открывается без ошибок.



Похожие публикации