【问题标题】:Apache (httpd) Wont start because "could not open error log"Apache (httpd) 无法启动,因为“无法打开错误日志”
【发布时间】:2017-09-11 22:19:07
【问题描述】:

好吧,伙计们,我很难过。我在 vm 上安装 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 以及该站点的用户执行 chown,但这不起作用。 我还确保为 www 设置了 755 目录,因此 error.log 文件应该能够被它打开。请帮帮我

【问题讨论】:

  • 更新:所以我确实发现它与启用 selinux 有关。我使用 setenforce 0 然后尝试:“systemctl start httpd.service”,它立即启动。那么问题来了,我该如何解决呢?

标签: apache apache2.4


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    为了调试权限,你可以 su 到 apache 用户,然后尝试触摸文件:

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

    【讨论】:

    • 我确实触摸了文件 /var/www/mydomain.com/error.log
    • 另外,作为 root:输入 sudo -u apache -i 给我这个错误“此帐户当前不可用”
    • 它不可用,因为 httpd 也在运行,但它唯一运行是因为我将这些部分注释掉了。所以我当然还有问题
    • 此账号当前不可用 报错是因为apache用户没有shell。对不起。试试sudo -u apache touch /var/www/mydomain.com/error.log
    • 刚试过,没用,在 apache 中出现同样的错误,因为无法打开日志 /var/www/mydomain.com/error.log
    猜你喜欢
    • 2014-05-04
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2020-04-29
    • 2013-08-28
    • 2012-11-09
    • 2016-09-09
    • 2015-05-30
    相关资源
    最近更新 更多