Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t获取PHP错误以转到日志文件(Apache日志除外)_Php_Apache_Lamp_Error Reporting_Error Log - Fatal编程技术网

Can';t获取PHP错误以转到日志文件(Apache日志除外)

Can';t获取PHP错误以转到日志文件(Apache日志除外),php,apache,lamp,error-reporting,error-log,Php,Apache,Lamp,Error Reporting,Error Log,在Ubuntu web服务器[LAMP]上,我试图将PHP错误写入PHP_错误文件中,但不管我做什么,它们都会进入apache日志 以下是我所做的尝试: 编辑了php.ini文件: 错误报告=E|u全部| E|u严格 显示错误=关闭 日志错误=On error\u log=/var/log/php\u errors.log 重新启动Apache 检查了phpinfo()输出,以验证我对php.ini文件所做的更改是否成功 在确认错误仍然存在于Apache日志中之后,我实际创建了php_err

在Ubuntu web服务器[LAMP]上,我试图将PHP错误写入PHP_错误文件中,但不管我做什么,它们都会进入apache日志

以下是我所做的尝试:

  • 编辑了php.ini文件:

    • 错误报告=E|u全部| E|u严格
    • 显示错误=关闭
    • 日志错误=On
    • error\u log=/var/log/php\u errors.log
  • 重新启动Apache

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

  • 在确认错误仍然存在于Apache日志中之后,我实际创建了php_errors.log并重试。仍在访问Apache日志

  • 重新启动web服务器!还是


  • 有人有解决方案吗?

    检查
    /var/log
    的目录权限。确保运行Web服务的用户对该文件夹具有写入权限。或者,创建一个子文件夹(/var/log/phplogs?)并为相关用户分配明确的权限,然后将
    错误\u log
    值更改为该文件夹中的文件

    检查
    /var/log
    的目录权限。确保运行Web服务的用户对该文件夹具有写入权限。或者,创建一个子文件夹(/var/log/phplogs?)并为相关用户分配对该文件夹的显式权限,然后将
    error\u log
    值更改为该文件夹中与所有权相关的文件。一个或另一个已经起作用[原因我不清楚]:

    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相反……原因我也不清楚]

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

    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相反…同样出于我不清楚的原因]

    作为记录,Ubuntu使用了AppArmor,它限制了Apache的功能

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

    转到下一个文件

    /etc/apparmor.d/abstractions

    编辑此文件

    普通公寓

    添加下一行

    /var/log/php_errors.log rw,
    
    其中rw表示进程可以读取和写入此文件

    或者你也可以这样做:

    sudo nano /etc/apparmor.d/abstractions/apache2-common
    
    最后,重新加载apparmor的配置

    systemctl reload  apparmor
    

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

    记录在案,Ubuntu使用AppArmor,它限制了Apache的功能

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

    转到下一个文件

    /etc/apparmor.d/abstractions

    编辑此文件

    普通公寓

    添加下一行

    /var/log/php_errors.log rw,
    
    其中rw表示进程可以读取和写入此文件

    或者你也可以这样做:

    sudo nano /etc/apparmor.d/abstractions/apache2-common
    
    最后,重新加载apparmor的配置

    systemctl reload  apparmor
    

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

    检查
    log\u errors\u max\u len
    大于0,web服务器是否有权创建
    /var/log/php\u errors.log
    ?您可能需要将其放置在Apache可以写入的位置中,例如
    /var/log/httpd/php\u errors.log
    /var/log/apache2/php\u errors.log
    检查
    日志\u errors\u max\u len
    大于0,web服务器是否有权创建
    /var/log/php\u errors.log
    ?您可能需要将其放置在Apache可以写入的位置中,如
    /var/log/httpd/php_errors.log
    /var/log/apache2/php_errors.log