默认情况下将PHP错误记录到Apache VirtualHost的ErrorLog

时间:2016-04-28 11:38:46

标签: php apache virtualhost

我在Apache中运行了很多VirtualHosts,其中没有一个令人兴奋。有没有比为每个VirtualHost指定php_value error_log /var/log/www-site/error.log更简单的方法?

每个VirtualHost都设置了ErrorLog:

<VirtualHost *:443>
  DocumentRoot /var/www-site
  ServerName site.me
  ServerAlias www.site.me

  CustomLog /var/log/www-site/access.log combined
  ErrorLog  /var/log/www-site/error.log
</VirtualHost>

在Apache中是否有一个设置,它允许您在默认情况下将PHP错误记录到Apache的错误日志文件,而不必指定它?

1 个答案:

答案 0 :(得分:2)

据我所知,PHP无法访问Apache的ErrorLog指令,因此它无法自动将所有错误记录到同一位置。如果您能够使用它,您可能需要查看mod_macro(https://httpd.apache.org/docs/2.4/mod/mod_macro.html)。它自Apache 2.4.6起默认可用,但可以在较低版本上手动安装。

它允许您在一个地方定义错误日志行,然后在每个虚拟主机中包含所有错误日志行。

<强> error_macro.conf

<Macro error_logs $site>
    php_value error_log /var/log/$site/error.log
    CustomLog /var/log/$site/access.log combined
    ErrorLog  /var/log/$site/error.log
</Macro>

在每个VirtualHost中

Use error_logs www-site