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



我正嘗試將特定的 PHP 脚本/應用程式輸送到 CentOS7 上的以下原誌文件:

/var/log/httpd/custom_error.log

我为此寻找了不同的解决方案,但这个 SO 问题是我见过的唯一最接近的答案,但仍然没有成功。

由于我运行了多个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' );

为了解决我的问题,我需要将路径/var/log/httpd/中父 httpd 文件夹的所有权更改为 apache:apache 用户/组:

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

如果我错了,请纠正我,但我的研究使我相信 Apache 将其相关日志输出到 root 拥有的系统日志,而系统日志又将日志写入该文件夹。

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

最新更新