每个虚拟主机的error_log?

Michael Stum 104 linux apache virtualhost

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

覆盖在此设置<Location>httpd.conf似乎没有做任何事情.

有没有办法error_logs为每个虚拟主机分别安装php ?

Clutch.. 136

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

<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_reporting密钥http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

  • 根据您的配置,您可能需要手动创建日志文件并将所有者/组设置为Apache正在使用的同一用户/组.如果它无法写入日志文件,Apache将不会警告您. (7认同)
  • 由于"error_reporting"值不断变化,因为你不能在PHP之外使用像"E_ALL"和"E_STRICT"这样的PHP常量,这就是你确保记录所有错误的方法:php_value error_reporting 2147483647 (2认同)

helloandre.. 77

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

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

如果没有前导"/",则认为它是相对的.

Apache错误日志页面

  • 那是apache错误日志,它与PHP错误日志分开(参见其他评论) (6认同)
  • php的错误日志默认为apache的错误日志. (2认同)

Kevin.. 13

我通常只在指定此.htaccess文件,vhost.conf对我工作的领域.将其添加到以下文件之一:

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


Mat.. 9

默认行为是error_log()输出到Apache错误日志.如果没有发生这种情况,请检查error_log指令的php.ini设置 - 保持未设置状态以使用当前vhost的Apache日志文件.


rkulla.. 6

不要设置error_log你的syslog东西去的地方eg /var/log/apache2,因为他们的错误会被拦截ErrorLog.而是subdir项目文件夹中创建日志并执行php_value error_log "/path/to/project/logs".这适用于.htaccess 文件和虚拟主机.另外,还要确保你把php_flag log_errors


hoyhoy.. 5

您是否尝试过添加php_value error_log '/path/to/php_error_logVirtualHost配置?


James Hartig.. 5

是的,你可以试试,

php_value error_log "/var/log/php_log" 

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

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


用户甲.. 5

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

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

或者Apache会将日志写入其中error_log.