每个虚拟主机的error_log?

在运行Apache和PHP 5的一台Linux服务器上,我们有多个具有单独日志文件的虚拟主机。我们似乎无法将虚拟主机之间的php error_log 分开。

Overriding this setting in the of the httpd.conf does not seem to do anything.

有没有办法为每个虚拟主机分别设置php error_logs

0
额外 编辑
意见: 1

8 答案

我通常只是在我正在使用的域上的 .htaccess 文件 vhost.conf 中指定。将其添加到以下文件之一:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"
0
额外
这解释了这种差异: mattiasgeniar.be/2012/02/18/…
额外 作者 Jeremy,
任何人都可以评论 php_admin_valuephp_value 之间的区别吗?
额外 作者 Nick M,

缺省行为是将error_log()输出到Apache错误日志。如果没有发生这种情况,请检查您的php.ini设置是否包含error_log指令 - 不要使用当前虚拟主机的Apache日志文件。

0
额外
我会查的。我只是想知道,如果我们希望开发人员有机会调试他们的代码而不给他们提供可能包含其他敏感数据的apache错误日志,那么是否仍然可以将apache和php错误日志分开。
额外 作者 Michael Stum,

要设置 Apache不是PHP )日志,最简单的方法是执行以下操作:


   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log

如果没有前导“/”,则认为它是相对的。

Apache错误日志页

0
额外
PHP的错误日志默认为Apache的错误日志。
额外 作者 helloandre,
相对于什么?它所写入的 httpd.conf 目录,或者?
额外 作者 mb21,
这怎么可能被评为最佳答案?
额外 作者 fdsfdsfdsfds,
这是apache错误日志,它与PHP错误日志分开(请参阅其他评论)
额外 作者 thelem,

如果有人看起来应该看起来像这样:


    ServerName example.com
    DocumentRoot /var/www/domains/example.com/html
    ErrorLog /var/www/domains/example.com/apache.error.log
    CustomLog /var/www/domains/example.com/apache.access.log common
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log

这仅用于开发,因为 display_error 已打开。您会注意到Apache错误日志与PHP错误日志是分开的。好东西在 php.error.log 中。

Take a look here for the error_reporting key http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

0
额外
日志文件不会公开。 / html /是公共空间。
额外 作者 Clutch,
你为什么想要你的公共领域的日志?
额外 作者 AlxVallejo,
由于“error_reporting”值不断变化,并且由于您不能在PHP之外使用PHP常量(如“E_ALL”和“E_STRICT”),因此您可以确保始终记录所有错误:php_value error_reporting 2147483647
额外 作者 Buttle Butkus,
根据您的配置,您可能需要手动创建日志文件并将所有者/组设置为Apache正在使用的同一用户/组。如果Apache无法写入日志文件,Apache不会发出警告。
额外 作者 Ian Dunn,
请注意,“error_reporting”值随新版本的PHP更改,因为它们添加更多错误级别。 E_ALL =“30719”。
额外 作者 ReactiveRaven,

我的Apache在httpd.conf中有这样的内容。只需更改ErrorLog和CustomLog设置


    ServerAdmin [email protected]
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common

0
额外
我们正在谈论PHP日志,而不是Apache日志。
额外 作者 demonkoryu,

是的,你可以尝试,

php_value error_log "/var/log/php_log" 

.htaccess 中,或者如果用户想要进行日志记录,则可以让用户在其脚本的开头使用 ini_set()

另一个选择是使脚本默认使用脚本文件夹中的 php.ini ,然后转到用户/主机的根文件夹,然后到服务器的根目录或类似的地方。这将允许主机添加他们自己的 php.ini 值和他们自己的 error_log 位置。

0
额外

您是否已尝试将 php_value error_log'/ path / to / php_error_log 添加到您的VirtualHost配置中?

0
额外

不要将 error_log 设置为您的 syslog 内容, eg / var / log / apache2 ,因为它们的错误将被拦截>错误日志</代码>。相反,请在您的项目文件夹中为日志创建 subdir ,然后执行 php_value error_log“/ path / to / project / logs” /代码>。这适用于 .htaccess 文件和虚拟主机。另外请确保您已将 php_flag log_errors 放入

0
额外
有趣。这种行为是否依赖于error_log文件的路径?
额外 作者 demonkoryu,