Я настраиваю машину NetDisco на CentOS, что влечет за собой добавление включения в файл apache httpd.conf.
Когда я запускаю apache, запустив «httpd» из командной строки root, запускается процесс.
Когда я пытаюсь запустить apache, запустив «service httpd start», я получаю следующий результат:
Starting httpd: httpd: Syntax error on line 1010 of /etc/httpd/conf/httpd.conf:
Could not open configuration file /usr/local/netdisco/netdisco_apache.conf:
Permission denied
[FAILED]
Этот файл имеет следующие разрешения:
-rw-r--r--. 1 root root 1798 Apr 22 18:46 netdisco_apache.conf
И httpd.conf имеет следующие разрешения:
-rw-r--r--. 1 root root 34520 Apr 22 17:06 httpd.conf
Что дает, конечно, файл с ТОЧНЫМИ такими же разрешениями должен быть доступен для службы apache?
Я поместил свой новый файл конфигурации в каталог / etc / httpd / conf, и это не решило проблему. Затем я изменил разрешения, чтобы они соответствовали httpd.conf, и это не решило проблему.
Потом я узнал о команде ls -Z
. Вывод для меня выглядит так:
-rw-r--r--. root root system_u:object_r:httpd_config_t:s0 httpd.conf
-rw-r--r--. root root unconfined_u:object_r:user_home_t:s0 httpd-vhosts.conf
Обратите внимание на часть в конце. Это называется контекстом. Я создал его как мой пользователь, который дал ему часть unlimited_u. Чтобы исправить это, я запустил:
sudo chcon system_u:object_r:httpd_config_t:s0 httpd-vhosts.conf
Это устранило проблему.
Попробуйте проверить права доступа к папке, содержащей netdisco_apache.conf
Вы правы, Apache должен иметь доступ к файлу, поскольку он имеет те же разрешения, но может не иметь доступа к папке, в которой он содержится.
Если вы не хотите изменять права доступа к папке, просто переместите netdisco_apache.conf в каталог / etc / httpd / conf (не забудьте обновить ссылку на него в файле /etc/httpd/conf/httpd.conf, если вы это сделаете .)