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

Разрешение отказано в корне документа vhost

У меня проблема с настройкой виртуального хоста на Apache 2.4 с использованием CentOS 6.3.

На этот вопрос, кажется, уже несколько раз отвечали на этом форуме, но ни одно из решений у меня не работает.

По сути, я установил виртуальный хост с определенным корнем документа. Когда я пытаюсь получить доступ к сайту, я получаю ошибку разрешений. Но у меня нет проблем, если я использую другой рут.

В частности, если я установил корневой каталог как / volume1 / web / xxx, я получу 503 из-за проблемы с разрешением на index.html.

Но если я установлю его как / volume1 / web, index.html появится без проблем.

Детали:

В httpd.conf я установил параметры VirtualHost, чтобы я мог легко переключить корень документа, изменив 2 отметки комментария.

У меня в файле conf есть следующие строки:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName localhost
    #DocumentRoot /volume1/web
    DocumentRoot /volume1/web/xxx

    #<Directory /volume1/web>
    <Directory /volume1/web/xxx>
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order Allow,Deny
      Allow from all
    </Directory>

    ErrorLog logs/localhost-error_log
    CustomLog logs/localhost-access_log common
</VirtualHost>

Эти строки содержат все предложения, которые помогли другим людям с той же проблемой.

То, что я получаю, когда я ввожу localhost в свой браузер, зависит от корня документа.

  1. Если корнем является / volume1 / web, откроется страница index.html.
  2. если корень - / volume1 / web / xxx, то я получаю ошибку 503, а в журнале ошибок apache есть такая строка:

    [Чт, 19 июля, 17:17:52 2012] [ошибка] [client :: 1] (13) В доступе отказано: доступ к /index.html запрещен

Я также попытался добавить в каталог файл index.php. Затем я получил сообщения об отказе в разрешении как для файла php, так и для файла html.

Я также попытался настроить user: group на apache: apache для каталогов и файлов. Это не помогло.

Я сделал все, что мог, чтобы исправить разрешения, но безрезультатно.

Кто-нибудь имеет представление о том, что здесь происходит?

Спасибо.

Похоже, вы создали новый каталог вне стандартной иерархии файловой системы для хранения ваших веб-документов.

Когда вы это делаете, SELinux не знает о вашей настраиваемой структуре каталогов и не знает, что Apache (httpd) должен иметь к ней доступ. Вы будете видеть сообщения в /var/log/audit/audit.log показывая отрицания в этом случае.

Чтобы решить проблему, вам нужно сообщить SELinux, что Apache может получить доступ к каталогу. Сделайте это с помощью semanage fcontext команда:

semanage fcontext -a -t httpd_sys_content_t "/volume1/web(/.*)?"

Сопоставление с образцом выполняется с помощью регулярных выражений, поэтому он будет соответствовать /volume1/web и все, что ниже. Тот факт, что он использует регулярные выражения, также означает, что вам нужно указать его, как показано выше.

Затем переименуйте файлы:

restorecon -r -v /volume1/web

SELinux теперь разрешает Apache доступ к файлам в /volume1/web.

Я укажу пальцем на SELinux. Проверить, запустив setenforce 0 и повторная попытка.

- Desabilitar SELINUX e Reiniciar

SELINUX = отключено

SELINUXTYPE = целевой

#

grep ^ SELINUX / и т.д. / sysconfig / selinux

{ T=/tmp/OLD.selinux.$RANDOM$RANDOM$$ ;
  cp -f /etc/sysconfig/selinux $T ;
  sed -e 's@^SELINUX=.*@SELINUX=disabled@' \
      -e 's@^SELINUXTYPE=.*@SELINUXTYPE=targeted@' \
      < $T > /etc/sysconfig/selinux ;
} ;

xreboot;