权限被拒绝:httpd:无法打开错误日志文件/ etc / httpd / logs / error_log

时间:2016-03-08 07:45:00

标签: php apache httpd.conf selinux

当我想在centOS 6.7上重启httpd searvice时,我有以下错误:

/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]

这是error_log:

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。

有什么问题?

3 个答案:

答案 0 :(得分:5)

httpd可能以用户apache或用户httpd的形式运行。您的日志是拥有的,只能由root写入。更改日志文件的所有权以使其工作。

这应该可以解决问题:

~# chown apache.apache /etc/httpd/logs/error_log

答案 1 :(得分:1)

也许您应该将该forder的组更改为apache,不建议将root用作服务器内容的所有者。无论如何apache应该在http开始之后自己改变...

来自httpd Wiki

  

在开始之前,我们需要了解Apache HTTP服务器   (httpd)作为特定用户和组运行。

     

在Linux以及大多数其他类Unix系统上,httpd都是以   " root"用户; UID = root,GID = root。这是必要的,因为只有   此用户可以绑定到端口80和443(实际上低于1024的任何内容)。

     

http启动并绑定到其端口(由Listen定义)    在httpd.conf中的语句,它将用户更改为指定的    httpd.conf中。典型地:

     

用户:apache
  组:apache

     

请注意基于Debian的系统,包括   Ubuntu,使用" www-data"代替。

作为一种可能的解决方案,您应该将自己添加到组apache

usermod -a -G apache (username)

然后:

chgrp apache (folderPath)
chmod g+rwxs (folderPath)  

无论如何,这很奇怪...告诉我这是否解决了你的问题,如果我没有编辑它,只要你提供进一步的信息:)

答案 2 :(得分:-3)

只需以超级用户身份运行:

service httpd start
  

启动httpd:(13)权限被拒绝:httpd:无法打开错误日志文件/ etc / httpd / logs / error_log。

     

无法打开日志[FAILED]

sudo service httpd start
  

启动httpd:[确定]