如何将 access.log 添加到 apache 中的每个虚拟主机

Posted

技术标签:

【中文标题】如何将 access.log 添加到 apache 中的每个虚拟主机【英文标题】:How to add access.log to each vhost in apache 【发布时间】:2013-10-15 22:18:56 【问题描述】:

这是我当前的虚拟主机:

<VirtualHost *:80>
        UseCanonicalName Off
        VirtualDocumentRoot /var/www/%0/public
        <Directory /var/www/%0/public>
                Options Indexes FollowSymLinks Includes ExecCGI
                DirectoryIndex index.php index.html
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory


</VirtualHost>

如何获取每个 %0 虚拟主机的 access.log?

仅供参考。如果重要的话,这是一个 debian 安装。

【问题讨论】:

【参考方案1】:

您可以在 VirtualHost 定义中添加 TransferLog。更改配置时不要忘记重新启动 Apache 服务。

<VirtualHost *:80>
        UseCanonicalName Off
        VirtualDocumentRoot /var/www/%0/public

        ErrorLog/var/logs/%0/error.log
        TransferLog /var/logs/%0/access.log

        <Directory /var/www/%0/public>
                Options Indexes FollowSymLinks Includes ExecCGI
                DirectoryIndex index.php index.html
                AllowOverride All
                Order allow,deny
                Allow from all
        </Director>
</VirtualHost>

【讨论】:

我认为 ErrorLog 不允许使用通配符,%0?

以上是关于如何将 access.log 添加到 apache 中的每个虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

禁用 apache 日志记录到 access.log [关闭]

老男孩教育每日一题-第67天-把 重命名access.log为access.log.bak,请问新的apache日志会放在哪?

使用 CURL 添加请求时间戳

nginx关闭全局access.log,error.log

Apache2 access.log 对于相同的数据包不同

Apache日志详解