Назад | Перейти на главную страницу

rhel7, apache2.4 - 403 запрещено с символической ссылкой

Я искал много информации по этому поводу, но ни одно из предложенных решений мне не помогло.

Что у меня есть:

Моя конфигурация apache VH (/etc/httpd/sites-available/domain.com.conf):

<VirtualHost *:80>
    ServerName www.domain.com
    ServerAlias domain.com
    DocumentRoot /var/www/domain.com/public_html
    <Directory /var/www/domain.com/public_html>
        Options Indexes FollowSymLinks
        Require all granted
        AllowOverride All
    </Directory>
</VirtualHost>

Некоторые интересующие разделы в основной конфигурации apache:

#
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other
# <Directory> blocks below.
#
<Directory />
    AllowOverride none
    Require all denied
</Directory>

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html"

#
# Relax access to content within /var/www.
#
<Directory "/var/www">
    Options Indexes FollowSymLinks
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

# Further relax access to the default document root:
<Directory "/var/www/html">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

Проблема: когда я пытаюсь получить доступ к domain.com/src/index.html мне запрещено.

Что я пробую:

Что еще можно попробовать? Спасибо...

UPD # 1: SElinux отключен

Ах, просто проблема в х разрешениях на папки. Извините и спасибо за помощь!

Кроме того, это тоже мне помогает: https://askubuntu.com/questions/537032/how-to-configure-apache2-with-symbolic-links-in-var-www

Если вы используете систему на основе rhel7 (centos, fedora и т.д.), у вас по умолчанию включен SElinux. На моей практике 95% проблемы - это несоответствие конфигурации selinux, я думаю, что ваша конфигурация apache правильная. Выполните с правами root:

        # getenfore

При отключенном режиме selinux вывод будет, так что проблема не в этом. Вывод :

         disabled

Если вывод будет Permissive или Enforce. Просто измените для тестирования режима SELinux, проверьте getenforce, что он изменился:

       # setenforce 0
       # getenfore

Попробуйте еще один HTTP-запрос с вашим сервером apache (попробуйте загрузить страницу в своем браузере и укажите адрес example.com). Если поможет это решение, пишите сюда. Все решения написаны вверху только для поиска проблемы, не работайте на рабочем сервере с этими изменениями. Пожалуйста, не отключайте SELinux, как это делают многие администраторы, это небезопасно. Я напишу вторую часть команды для включения разрешения SELinux после того, как вы написали, если первая часть вступит в силу.