Apache(httpd)无法启动,因为“无法打开错误日志”

3

好的,小伙子们,我被难住了。我在虚拟机上安装了CentOS 7.2,并安装了httpd,将其启用为服务,然后启动它。 然后按照以下方式创建和编辑了一个配置文件:

<VirtualHost *:80>
ServerAdmin admin@mydomain.com
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
#ErrorLog /var/www/mydomain.com/error.log
#CustomLog /var/www/mydomain.com/requests.log combined
</VirtualHost>

所以...当我取消注释"ErrorLog"时,我相信这是正确的,并且在目录"/var/www/mydomain.com/"中有一个名为error.log的文件,Httpd.service无法启动,出现以下错误:

(13)Permission denied: AH00091: httpd: could not open error log file /var/www/mydomain.com/error.log.
AH00015: Unable to open logs

我尝试将error.log文件的所有者更改为apache:apache、root:root和站点用户,但都没有成功。我还确保将www目录设置为755,因此该error.log文件应该能够被打开。请帮我解决这个问题。


1
更新:我发现这与启用selinux有关。 我使用了 setenforce 0 然后尝试了:“systemctl start httpd.service” 它立即启动了。所以问题是,我该如何解决这个问题? - UnknownSender
2个回答

6
原来错误日志和访问日志需要放置在 /var/log/httpd/ 目录下,而不是原先的位置。

-1

在 leading up to the error.log 的路径中,所有的目录都必须对 apache 用户或组设置可执行和可读位,以便 apache 能够写入日志文件。

为了调试权限问题,您可以切换到 apache 用户,并尝试触碰该文件:

sudo -u apache touch /var/www/mydomain.com/error.log

我确实触碰了文件 /var/www/mydomain.com/error.log - UnknownSender
同时,以 root 身份输入 sudo -u apache -i 会给我返回这个错误信息:“此帐户当前不可用”。 - UnknownSender
无法使用,因为httpd正在运行,但这仅是因为我注释掉了那些部分。所以我当然仍然有问题。 - UnknownSender
1
报告此帐户当前不可用,是因为Apache用户没有shell。请原谅。尝试只使用sudo -u apache touch /var/www/mydomain.com/error.log - Johan Thomsen
刚刚尝试了一下,但是没有成功,Apache 报错说无法打开日志 /var/www/mydomain.com/error.log。 - UnknownSender
既然您现在说selinux是您的问题,请查看此处的帖子:https://www.centos.org/forums/viewtopic.php?t=1742 - Johan Thomsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接