PHP应用程序如何将错误记录到:/ var / log / httpd /目录中的自定义文件?

时间:2017-01-28 21:12:15

标签: php logging

我正在尝试将特定的PHP脚本/应用程序输出到CentOS7上的以下日志文​​件:

/var/log/httpd/custom_error.log

我已经针对此寻找了不同的解决方案,但this SO question是我见过的唯一最接近的答案,但仍然没有成功。

由于我有多个运行的PHP框架/应用程序(WordPress,Drupal等),我使用PHP的基于脚本的覆盖,每个脚本进程分别使用自己的覆盖。例如,以下内容不起作用:

ini_set('error_log', '/var/log/httpd/wp_error.log' );

该wp_error.log文件的所有权和权限设置为apache:apache 644。

相比之下,当我有以下内容时,这会成功:

ini_set('error_log', '/var/www/wordpress/wp_error.log' );

或者:

ini_set('error_log', '/var/www/drupal/dru_error.log' );

1 个答案:

答案 0 :(得分:0)

要修复我的问题,我需要将路径/ var / log / httpd /中的父httpd文件夹的所有权更改为apache:apache user / group:

sudo touch /var/log/httpd/custom.log
sudo chown -R apache:apache /var/log/httpd

如果我错了,请纠正我,但我的研究让我相信Apache会将其相关日志输出到root所拥有的syslog,后者又将日志写入该文件夹。

但是,如果我将所有权更改为Apache,root仍然可以写入这些日志文件,但现在Apache及其相关进程(例如PHP)也可以直接写入该日志文件夹。