当我想在centOS 6.7上重新启动httpd搜索时,出现以下错误:
/etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: (13)Permission denied: httpd: could not open error log file /etc/httpd/logs/error_log.
Unable to open logs
[FAILED]
这是错误日志(_L):
ls -Z /etc/httpd/logs/error_log
-rw-r--r--. root root unconfined_u:object_r:var_t:s0 /etc/httpd/logs/error_log
我还禁用了selinux。
有什么问题吗?
6条答案
按热度按时间0kjbasz61#
httpd
可能以用户apache
或用户httpd
的身份运行。您的日志由root
拥有且只能由其写入。请更改日志文件的所有权以使其正常工作。这样就可以了:
ef1yzkbh2#
也许你应该把那个forder的组改成apache,不推荐root作为服务器的所有者。无论如何apache应该在http启动后自己改变这个...
从httpd Wiki开始:
在开始之前,我们需要知道Apache HTTP服务器(httpd)是作为特定的用户和组运行的。
在Linux以及大多数其他类Unix系统上,httpd以“root”用户身份启动; UID=root,GID=root。这是必需的,因为只有该用户可以绑定到端口80和443(实际上是1024以下的任何端口)。
在http启动并绑定到其端口(由httpd.conf中的Listen语句定义)后,它会将user更改为httpd. conf中指定的用户。通常:
用户:apache
组:Apache
请注意,基于Debian的系统,包括Ubuntu,使用“www-data”代替。
作为可能的解决方案,您应该将自己添加到apache组中。
然后道:
不管怎么说,这很奇怪...告诉我这是否解决了你的问题,如果没有,我会编辑它,只要你提供我进一步的信息:)
xjreopfe3#
在CentOS 7中
尝试禁用SElinux,然后重新启动
systemctl重新启动httpd
注意:永远不要让SElinux处于禁用状态。如果问题得到解决,则启用(强制)它,然后在SElinux中启用httpd
https://www.serverlab.ca/tutorials/linux/web-servers-linux/configuring-selinux-policies-for-apache-web-servers/
hsgswve44#
如果您使用的是RedHat/Fedora/CentOS/RockyLinux,请尝试执行以下命令(
14:00
是自错误发生以来的时间):您可能会看到以下错误:
这意味着缺少权限与
chmod
无关,而是与SELinux
有关。要解决此问题,您需要执行以下命令(请相应地调整日志目录):
错误应该会消失。而且请永远不要永久关闭
SELinux
(正如有人可能建议的那样),因为您的服务器可能会受到损害。zmeyuzjn5#
在我的情况下,我已经做了下面的行动后,能够启动httpd服务没有任何错误。
错误:
解决方法:
s6fujrry6#
只需以超级用户身份运行即可:
正在启动httpd:(13)权限被拒绝:httpd:无法打开错误日志文件/etc/httpd/logs/error_log。
无法打开日志[失败]
正在启动httpd:[确定]