У меня есть док-контейнер с изображением Centos 7. Все, что нужно сделать, это запустить простой сервер Apache2. Когда контейнер запускается, он сразу же выходит с:
AH00526: Syntax error on line 119 of /etc/httpd/conf/httpd.conf:
DocumentRoot '/var/www/html' is not a directory, or is not readable
Я сделал несколько основных проверок:
- Папка существует
- Права доступа ```rwx r_x r_x root root```` для каждой папки /var/www/html
- Пробовал
chown -R apache /var/www
(ни одна соломинка не останется незажатой!) - SELinux отключен (... или нет?)
Когда я вхожу в контейнер с точкой входа bash, я могу запустить apache от имени пользователя root с помощью /sbin/httpd -D FOREGROUND
, и все работает, как и ожидалось.
Поэтому я думаю, что это почти наверняка связано с разрешениями. Погуглив нашел много страниц с моей ошибкой, например. Перезапуск Apache вызывает DocumentRoot должен быть каталогом, даже если это каталог и, кажется, нет проблем с привилегиями Эта конкретная страница подробно описывает то, что я получаю, и решение почти на каждой странице — настроить SELinux. Однако SELinux отключен. Даже в этой ссылке есть комментарий от ОП
Моя версия Linux не является Linux с усиленной безопасностью, поэтому, не понимая, я все равно попробовал: никакого эффекта.
Тем не менее они приняли решение, заключающееся в настройке SELinux.
Я думаю, что что-то упускаю, почти наверняка связанное с SELinux, но я не могу понять. Образ докера имеет следующие (явное отсутствие) настройки SELinux:
- /etc/selinux содержит только semanage.conf и tmp/ (пусто)
- /usr/sbin не содержит исполняемых файлов se*
rpm -qa | grep selinux
libselinux-2.5-12.el7.x86_64
- /etc/sysconfig/selinux does not exist
- So in the Dockerfile I tried
RUN echo "SELINUX=disabled" > /etc/sysconfig/selinux
- So in the Dockerfile I tried
- doing
yum install -y policycoreutils
installs sestatus in /usr/sbin. Running sestatus givesSELinux status: disabled
- С /etc/sysconfig/selinux или без него
Действительно похоже, что SELinux отключен, но ошибка выглядит так, как будто он включен.
docker run
, которую вы используете для запуска образа? - person David Maze   schedule 31.08.2018