【问题标题】:Dynamic apache log directory based on hostname基于主机名的动态 apache 日志目录
【发布时间】:2013-12-11 14:57:06
【问题描述】:

我有一个供多个域使用的 PHP 应用程序。为了避免维护多个虚拟主机,我只设置了一个“默认”Apache 虚拟主机,以将任何传入请求到服务器的请求定向到应用程序目录。

我想做的是根据访问服务器的主机名动态设置 Apache 访问和错误日​​志路径。

例如,我想将日志路径设置为:

/var/log/application_name/example.com/error.log
/var/log/application_name/example.com/access.log

当向example.com 发出请求时。

有没有可行的方法来做到这一点?我已经研究过使用任何 Apache 环境变量,但是由于这些是在捕获请求时设置的,我认为这些变量不能用于 ErrorLog 或 CustomLog 指令。难道我只需要在应用程序级别(即PHP)手动设置日志目录吗?

谢谢

【问题讨论】:

    标签: apache hostname vhosts


    【解决方案1】:

    您可以通过使用 ServerAlias 为多个域仅维护 1 个 VirtualHost 来使用 VirtualHosts:

    <VirtualHost *:80>
            ServerAdmin ...
            ServerName domain1.bla.com
            ServerAlias service.bla.com domain5.domain.xxx
            DocumentRoot /www/vhosts/xxx/public
    
            ErrorLog /www/vhosts/xxx/log/error.log
            CustomLog /www/vhosts/ccc/log/access.log combined
            LogLevel warn
    
            <Directory "/www/vhosts/ccc/public">
                    Options FollowSymLinks MultiViews
                    php_admin_flag safe_mode On
                    AllowOverride None
                    Order allow,deny
                    allow from all
            </Directory>
    </VirtualHost>
    

    【讨论】:

      【解决方案2】:

      我使用这样的设置,其中我的 logsplit.sh 脚本根据 %U 写入日志文件:

      <VirtualHost *:80>
          ServerName myserver.com
          ServerAlias *.myserver.com
          VirtualDocumentRoot /home/%1/www/
          LogFormat "%U %h %l %u %t \"%r\" %>s %b" common
          CustomLog "|/usr/local/logsplit.sh" common
      </VirtualHost>
      

      【讨论】:

      • 我不能这样做吗:CustomLog "/usr/local/%{HTTP_HOST}.log" common。或者至少将 ${HTTP_HOST} 作为参数传递给 logsplit.sh,这样我就可以按主机拆分?
      • 当然你可以这样做: LogFormat "%{HTTP_HOST} %h %l %u %t \"%r\" %>s %b" common 不幸的是你不能在日志文件路径中使用变量
      猜你喜欢
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      相关资源
      最近更新 更多