我正在尝试将特定的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' );
答案 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)也可以直接写入该日志文件夹。