我在CentOS上设置NetDisco计算机,这需要在apache httpd.conf文件中添加一个include。
当我通过从根命令提示符运行“httpd”来启动apache时,进程启动。
当我尝试通过运行“service httpd start”来启动apache时,我得到以下输出:
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
是什么赋予了EXACT相同权限的文件当然可以被apache服务访问?
尝试检查包含netdisco_apache.conf的文件夹的权限
你是对的,Apache应该能够访问该文件,因为它具有相同的权限,但可能无法访问它所包含的文件夹。
如果您不想更改文件夹权限,只需将netdisco_apache.conf移动到/ etc / httpd / conf目录(请记住在/etc/httpd/conf/httpd.conf文件中更新对该文件的引用。)
我把我的新的configuration文件放在/ 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
注意最后的部分。 这被称为上下文。 我已经创build了它作为我的用户,它给了它的unconfined_u部分。 要解决这个问题,我跑了:
sudo chcon system_u:object_r:httpd_config_t:s0 httpd-vhosts.conf
这解决了这个问题。