我想设置 Apache2,以便它将访问和错误记录到单独的日志中。App1 位于 /var/www/,App2 位于 /var/www/app2。我应该如何解决这个问题?
我是否应该为每个目录创建一个虚拟主机,或者 .htaccess 是否可以满足我的要求?
答案1
将 ErrorLog 指令放入站点配置中/etc/apache2/site-available/mysite
:
CustomLog ${APACHE_LOG_DIR}/access.log
ErrorLog ${APACHE_LOG_DIR}/error.log
最终您可以${APACHE_LOG_DIR}
用绝对路径替换。
如果你想要更复杂的东西,你可以使用 rotatelogs 实用程序,例如:
CustomLog "|bin/rotatelogs logs/access.%Y-%m-%d-%H_%M_%S 10M" common
ErrorLog "|bin/rotatelogs logs/error.%Y-%m-%d-%H_%M_%S 10M"
当您在此过程中时,您可以为“access/error”字符串指定额外的前缀/后缀,以根据站点对其进行自定义。
答案2
抱歉,.htaccess 文件不起作用。您需要将其放入日志文件中。
CustomLog Directive
Description: Sets filename and format of log file
Syntax: CustomLog file|pipe format|nickname [env=[!]environment-variable]
Context: server config, virtual host
Status: Base
Module: mod_log_config
不过,我还没有测试过它是否适用于块。你可能想尝试一下。如果做不到,他们有一个示例设定EnfIf和自定义日志根据环境变量来实现您的需要。