Ошибка You don’t have permission to access / on this server – мой опыт как я это настраивал 😤

Если вы работаете с 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

Там всегда есть подсказка, что именно не так.

Виталий nibbl

Привет 👋 Меня зовут Виталий, в сети я известен как Виталий Nibbl. С 2009 года я в IT и люблю задачки, от которых у других опускаются руки. Если вам сказали, что - "это невозможно" — значит, вы просто ещё не обратились ко мне 😎 В моих блогах на YouTube и Telegram вы найдёте пошаговые инструкции и решения любых сложностей. А ещё я профессионально скачиваю видео с любых платформ и всегда на связи по IT-вопросам.

Оцените автора
NIBBL
    • 29.10.2016 14:31

    Не помогло ничего из вышеперечисленного

    Ответить
      • 29.10.2016 21:29

      пришлите ошибку из логов

      Ответить
    • 19.12.2017 12:53

    Мне тоже не помогло, но помогло другое у меня так было в файловом менеджере хоста
    сайт.ру>public_html>файлы вордпресс
    сделал так: сайт.ру>файлы вордпресс
    и заработало но потом писалo что “Ошибка установки соединения с базой данных” но это уже совсем другая история…

    Ответить
    • 03.07.2018 11:50

    Иногда помогает включение страшной и ужасной директивы mod_rewrite в Apache2. )

    Ответить
    • 22.07.2018 15:49

    Forbidden
    You don’t have permission to access /ProjectApi/noInactive.php on this server. что с этим делать, помогите???

    Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Оценка

PROS

+
Add Pros

Cons

+
Add Cons