每个虚拟主机的error_log?

时间:2020-03-05 18:37:18  来源:igfitidea点击:

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

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

有没有一种方法可以为每个虚拟主机设置单独的phperror_logs

解决方案:

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

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

如果没有前导" /",则假定是相对的。

Apache错误日志页面

默认行为是将error_log()输出到Apache错误日志。如果这没有发生,请检查php.ini设置是否有error_log伪指令,使其未设置为将Apache日志文件用于当前vhost。

我通常只是在工作的域上的.htaccess文件或者vhost.conf中指定它。将此添加到以下文件之一:

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

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

<VirtualHost myvhost:80>
    ServerAdmin [email protected]
    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添加到VirtualHost配置中?

我们可以尝试:

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

但是我不确定是否能正常工作。我尝试在自己的网站上没有成功。

是的,我们可以尝试,

php_value error_log "/var/log/php_log"

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

另一种选择是使脚本默认为包含脚本的文件夹中的" php.ini",然后转到用户/主机的根文件夹,再转到服务器的根目录或者类似名称。这将允许主机添加自己的php.ini值和自己的error_log位置。

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

它对我有用,但是我必须更改日志文件的权限。

否则Apache会将日志写入其error_log中。

不要将" error_log"设置为" syslog"内容所在的位置,例如" / var / log / apache2",因为它们的错误将被" ErrorLog"拦截。相反,在项目文件夹中创建一个subdir日志,然后执行php_value``error_log" / path / to / project / logs"。这适用于.htaccess文件和虚拟主机。还要确保我们将php_flag``log_errors放在

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

<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/zh-CN/errorfunc.configuration.php#ini.error-reporting