PHP错误写入错误日志


PHP errors written to wrong log

我的Linux服务器在Apache2上运行PHP 7作为CGI。在php.ini中,我有

error_log = /var/log/apache2/php.log

现在,我有两个问题:

1) 所有PHP错误都将转到/var/log/apache2/error.log而不是php.log。我编辑了右边的php.ini,因为ini_get('error_log')在PHP中返回了php.log的完整路径。

2) 当我尝试在PHP中打开这两个文件时,我会被拒绝权限。我已经将这两个文件chmod'd保存到777,但PHP仍然无法访问它们。

服务器已多次重新启动,因此应用配置更改。我的Apache配置是这样的:

ErrorLog ${APACHE_LOG_DIR}/error.log
ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php7 php
Action application/x-httpd-php7 /local-bin/php-cgi7.0
<Directory "/usr/bin">
    Require all granted
    AllowOverride All
</Directory>

如何将PHP错误重定向到正确的文件,并使其对PHP可读?提前感谢!

您需要将日志目录和日志文件的ownergroup更改为www-data:

sudo chown -R www-data:www-data /path/to/log/directory

不要将目录权限更改为777,因为这可能会导致安全问题,请改用775。对于日志文件,请使用664

您可能还想将您的系统用户添加到组www-data(如果还不是成员)(使用groups命令检查现有组),之后需要重新启动系统才能使更改生效:

sudo adduser user www-data #change 'user' to your