每个虚拟主机的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_reporting
键http://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>
但我不知道是否会工作。 我尝试在我的网站上没有成功。