每个虚拟主机的error_log?

在一台运行Apache和PHP 5的Linux服务器上,我们得到了多个带有单独日志文件和所有东西的虚拟主机。 我们似乎无法区分虚拟主机的唯一情况是php error_log

覆盖httpd.conf<Location>中的这个设置似乎没有任何作用。

我忽略了什么? 有没有办法让每个虚拟主机有单独的php error_logs

要设置Apache而不是PHP )日志,最简单的方法是:

 <VirtualHost IP:Port> # Stuff, # More Stuff, ErrorLog /path/where/you/want/the/error.log </VirtualHost> 

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

Apache错误日志页面

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

 <VirtualHost *:80> 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 </VirtualHost> 

这是仅在开发display_error时才开发的。 您会注意到,Apache错误日志与PHP错误日志是分开的。 好东西在php.error.log

看看这里的error_reportinghttp://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

我通常只是在.htaccess文件我正在处理的域中的vhost.conf指定。 添加到这些文件之一:

 php_admin_value error_log "/var/www/vhosts/example.com/error_log" 

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

不要把error_log设置到你的syslog东西去, eg /var/log/apache2 ,因为它们的错误会被ErrorLog拦截。 相反,在日志的项目文件夹中创build一个php_value ,并执行php_value error_log "/path/to/project/logs" 。 这适用于.htaccess 文件和虚拟主机 。 还要确保你把php_flag log_errors放在上面

我的Apache在httpd.conf中有类似的东西。 只需更改ErrorLog和CustomLog设置

 <VirtualHost myvhost:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /opt/web ServerName myvhost ErrorLog logs/myvhost-error_log CustomLog logs/myvhost-access_log common </VirtualHost> 

您是否尝试将php_value error_log '/path/to/php_error_log到您的VirtualHostconfiguration中?

是的,你可以试试,

 php_value error_log "/var/log/php_log" 

.htaccess或者如果用户想要logging日志,可以让用户在脚本的开头使用ini_set()

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

 php_value error_log "/var/log/httpd/vhost_php_error_log" 

它适用于我,但我必须更改日志文件的权限。

否则Apache会将日志写入其error_log

你可以尝试:

  <VirtualHost myvhost:80> php_value error_log "/var/log/httpd/vhost_php_error_log" </Virtual Host> 

但我不知道是否会工作。 我尝试在我的网站上没有成功。