Если вы работаете с Apache, рано или поздно столкнётесь с этой противной ошибкой:
You don’t have permission to access / on this server
Она выскакивает, когда сервер отказывается показывать содержимое сайта – и пишет “доступ запрещён”, хотя всё вроде бы настроено правильно и “по инструкция из интернета” )))
Я с этим возился ни один день, когда поднимал связку Apache + PHP + MySQL + phpMyAdmin на Freebsd. Всё шло отлично, пока не понадобилось создать второй виртуальный хост. И вот тут началось: вместо сайта – ошибка You don’t have permission to access / on this server.
Давайте разбираться, почему Apache может перестать открывать сайт и выдавать ошибку доступа к ресурсу 👇
🧩 Вариант 1. Неправильные права на файлы и папки
Это самая частая причина.
Apache просто не может “зайти” в каталог сайта.
Чтобы проверить, откройте терминал и временно поставьте “максимальные” права:
sudo chmod -R 777 /var/www/ваш_сайт
Если сайт открылся – bingo, проблема в правах.
Потом не забудьте вернуть нормальные значения:
sudo find /var/www/ваш_сайт -type d -exec chmod 775 {} \;
sudo find /var/www/ваш_сайт -type f -exec chmod 644 {} \;
И проверьте, чтобы владелец был www-data:
sudo chown -R www-data:www-data /var/www/ваш_сайт
⚙️ Вариант 2. Не задан файл по умолчанию
Иногда Apache просто не знает, какой файл открывать при заходе на сайт.
Тогда при вводе site.ru видим ошибку, а site.ru/index.php – работает.
Решение простое:
Создайте или откройте файл .htaccess в корне сайта и добавьте строку:
DirectoryIndex index.php
Если .htaccess не помогает, добавьте то же самое в конфигурацию виртуального хоста:
<Directory /var/www/ваш_сайт>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex index.php index.html index.htm
</Directory>
После изменений обязательно перезапустите Apache:
sudo systemctl restart apache2
🧱 Вариант 3. Запрет доступа через .htaccess
Иногда в корне сайта “затаилась” строчка:
Deny from all
Она блокирует всё подряд.
Если видите её – удалите или замените на:
Require all granted
💡 Вариант 4. SELinux (если у вас CentOS, AlmaLinux или Fedora)
Если вы не на Ubuntu, а, например, на CentOS – тут есть ещё один сюрприз.
SELinux может блокировать доступ Apache к файлам даже при правильных правах.
Проверьте статус:
sestatus
Если Enforcing, то можно временно отключить для проверки:
sudo setenforce 0
Если сайт заработал – значит, SELinux виноват.
Добавьте контекст:
sudo chcon -R -t httpd_sys_content_t /var/www/ваш_сайт
🔄 Вариант 5. Проблема в конфигурации виртуального хоста
Иногда ошибка появляется просто потому, что Apache не понимает, какой сайт обслуживать.
Проверьте, что в /etc/apache2/sites-enabled/ ваш конфиг активен, и в нём указаны правильные пути:
<VirtualHost *:80>
ServerName site.ru
DocumentRoot /var/www/ваш_сайт
<Directory /var/www/ваш_сайт>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Активируйте сайт и перезапустите Apache:
sudo a2ensite ваш_сайт.conf
sudo systemctl reload apache2
🧹 Напоследок
Если ни один вариант не помог:
- очистите кеш браузера;
- удалите и пересоздайте виртуальный хост с нуля (часто быстрее, чем ковырять старый);
- загляните в логи:
sudo tail -n 50 /var/log/apache2/error.log
Там всегда есть подсказка, что именно не так.










Не помогло ничего из вышеперечисленного
пришлите ошибку из логов
Мне тоже не помогло, но помогло другое у меня так было в файловом менеджере хоста
сайт.ру>public_html>файлы вордпресс
сделал так: сайт.ру>файлы вордпресс
и заработало но потом писалo что “Ошибка установки соединения с базой данных” но это уже совсем другая история…
Иногда помогает включение страшной и ужасной директивы mod_rewrite в Apache2. )
Forbidden
You don’t have permission to access /ProjectApi/noInactive.php on this server. что с этим делать, помогите???