代码之家  ›  专栏  ›  技术社区  ›  ReverseEMF

无法将PHP错误转移到日志文件(Apache日志除外)

  •  1
  • ReverseEMF  · 技术社区  · 11 年前

    在Ubuntu网络服务器[LAMP]上,我试图将PHP错误写入PHP_error文件,但无论我做什么,它们都会一直保存到apache日志中。

    以下是我所尝试/做的:

    1. 已编辑php.ini文件:

      • 错误报告=E_ALL | E_STRICT
      • display_error=关闭
      • log_errors=打开
      • error_log=/var/log/php_errors.log
    2. 重新启动的Apache

    3. 检查了 phpinfo() 输出,以验证我对php.ini文件所做的更改是否成功。

    4. 在验证了错误仍然会进入Apache日志后,我实际创建了php_errors.log并重试。仍在访问Apache日志!

    5. 已重新启动web服务器!还

    有人有解决方案吗?

    3 回复  |  直到 11 年前
        1
  •  2
  •   DaveyBoy    11 年前

    检查的目录权限 /var/log 。请确保运行Web服务的用户具有对该文件夹的写入权限。或者,创建一个子文件夹(/var/log/phplogs?),并为有问题的用户分配显式权限,然后更改 error_log 值作为中的文件 那个 文件夹

        2
  •  2
  •   ReverseEMF    9 年前

    这与所有权有关。其中一个或另一个已经起作用[原因我不清楚]:

    chown www-data:www-data /var/log/php_error.log
    
    chown same-user-as-www-home:same-user-as-web-home /var/log/php_error.log
    

    此外,以下因素也产生了影响:

    chmod 664 /var/log/php_error.log
    

    [与chmod 644相反……再次出于我不清楚的原因]

        3
  •  0
  •   magallanes    3 年前

    为了记录在案,Ubuntu使用 AppArmor公司 它限制了Apache的工作。

    此外,要更改文件的权限并编辑php.ini文件,您必须执行以下步骤:

    转到下一个文件

    /etc/appramor.d/抽象

    编辑此文件

    电容器2公用

    添加下一行

    /var/log/php_errors.log rw,
    

    哪里 放射性废物 意味着进程可以读取和写入此文件

    或者你也可以这样做:

    sudo nano /etc/apparmor.d/abstractions/apache2-common
    

    最后,重新加载的配置 应用程序访问控制系统

    systemctl reload  apparmor
    

    注意:Centos/Redhat/Oracle Linux使用SELinux,它需要相同的步骤,但配置不同。