基于主机名的动态apache日志目录

Jam*_*mes 1 apache hostname vhosts

我有一个PHP应用程序,由多个域使用.为了避免维护多个vhost,我只设置了一个"默认"Apache vhost来将任何传入请求引导到服务器到应用程序目录.

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

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

/var/log/application_name/example.com/error.log
/var/log/application_name/example.com/access.log
Run Code Online (Sandbox Code Playgroud)

当提出请求时example.com.

有可行的方法吗?我已经看过使用任何Apache环境变量,但是因为这些是在捕获请求时设置的,所以我认为这些变量不能用于ErrorLog或CustomLog指令.是否只需要在应用程序级别(即在PHP中)手动设置日志目录?

谢谢

Jes*_*ase 6

我使用这样的设置,我的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>
Run Code Online (Sandbox Code Playgroud)

  • 当然你可以这样做:LogFormat"%{HTTP_HOST}%h%l%u%t \"%r \"%> s%b"常见遗憾的是你不能在日志文件路径中使用变量 (2认同)