AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 47038
Accepted
Synetech
Synetech
Asked: 2009-07-29 07:37:03 +0800 CST2009-07-29 07:37:03 +0800 CST 2009-07-29 07:37:03 +0800 CST

让 Subversion Apache 模块使用 CustomLog

  • 772

我已将 Subversion 作为 Apache 模块安装,它已设置好并且工作正常。唯一的问题是我将所有 SVN 内容(例如 PROPFIND、OPTIONS 等)记录到与正常 Web 访问相同的 .LOG 文件中。我试图弄清楚如何让 SVN 模块向自定义日志文件报告。

这是加载 SVN 模块的 Apache conf 文件的一部分。我尝试使用 CustomLog 指令(如底部所示)来执行此操作,但这不起作用。

################################################
#Subversion modules
LoadModule  dav_svn_module    "C:/SVN/bin/mod_dav_svn.so"
LoadModule  authz_svn_module  "C:/SVN/bin/mod_authz_svn.so"

# Configure Subversion repository
# This configures Apache so that all your Subversion repositories
# are available at http://myserver/svn/[repositoryName]
# The access is restricted to known users/passwords.
<Location             /svn/>
  DAV                 svn
  SVNIndexXSLT        "/svnindex.xsl"
  SVNParentPath       "C:/SVNRep/Repository/"
  SVNListParentPath   on
# SVNPath             "C:/SVNRep/Repository/" #for single repository 
  SVNPathAuthz        off
# SVNMasterURI        http://localhost/svn/ #for write-through proxying
  AuthType            Basic
  AuthName            "My Subversion repositories"
  AuthUserFile        "C:/SVNRep/passwd"
  Require             valid-user
  AuthzSVNAccessFile  "C:/SVNRep/acl"
</Location>
CustomLog "C:/Logs/Apache/SVN.log"  "%t %u %{SVN-ACTION}e" env=SVN-ACTION
################################################


有任何想法吗?

非常感谢。

logging apache-2.2 log-files svn
  • 2 2 个回答
  • 3472 Views

2 个回答

  • Voted
  1. DisabledLeopard
    2009-07-30T21:14:18+08:002009-07-30T21:14:18+08:00

    除了从 *nix 到 Windows 的日志路径不同之外,你所拥有的正是我在各种服务器上配置和工作的 - 可能 SVN-ACTION 没有进入 Windows 上的环境?作为一种解决方法,您可以尝试:

    SetEnvIf Request_URI "^/svn/*" mysvn
    CustomLog "C:/Logs/Apache/SVN.log" combined env=mysvn
    

    这显然不会像记录 %{SVN-ACTION}e 那样友好,但它会将所有对 /svn 的请求拆分到他们自己的日志中。

    • 1
  2. Best Answer
    Synetech
    2009-08-01T19:20:43+08:002009-08-01T19:20:43+08:00

    好吧,我想通了。经过大量搜索(发现其他一些人提出了同样的问题,但没有我预期的那么多),我偶然想到了解决方案。在观看节目时,在广告期间,我开始思考如何将 Subversion 与 Web 服务器完全隔离(就像完全在单独的服务器中一样)。然后我想知道为什么 Subversion 条目会淹没 Web 服务器日志,而我的其他 VirtualHosts 却没有(他们根据需要使用自己的日志)。然后它击中了我:我在主 Web 服务器中设置了 SVN,而不是虚拟主机!所以这就是答案。

    要将 Subversion 记录到它自己的 LOG 文件而不是淹没主 Apache 日志文件,只需将 SVN 指令(例如 Location...)放在它自己的专用虚拟主机中。

    这样,我可以使用 SVN 客户端连接到 SVN 虚拟主机,并使用Web 浏览器连接到Web 服务器。呃。:)这么简单;没有黑客,没有解决方法,什么都没有。奇怪的是为什么将 SVN 位置放在虚拟主机中似乎并没有出现在很多示例中——我只在一个示例中看到过!在几十个例子中。

    (当然,如果您尝试使用 SVN 客户端连接到主日志文件,主日志文件仍会获得 OPTIONS、PROPFIND 等条目,但这是正确的行为。)

    这是一个例子:

    <VirtualHost 127.200.200.200:80>
        <Directory "C:/Subversion/Repositories/">
            Options Indexes Includes
            Order   Deny,Allow
            Allow   from all
        </Directory>
    
        ServerName   svn
        ServerAdmin  [email protected]
        DocumentRoot "C:/Subversion/Repositories/"
    
        ErrorLog  "C:/Logs/SVN/error.log"
        CustomLog "C:/Logs/SVN/access.log"  common
        CustomLog "C:/Logs/SVN/referer.log" referer
        CustomLog "C:/Logs/SVN/agent.log"   agent
    
        LoadModule dav_svn_module   "C:/SVN/bin/mod_dav_svn.so"
        LoadModule authz_svn_module "C:/SVN/bin/mod_authz_svn.so"
    
        <Location /svn/>
          DAV                 svn
          SVNParentPath       "C:/Subversion/"
          SVNListParentPath   on
          SVNPathAuthz        off
          AuthType            Basic
          AuthName            "My Subversion Repositories"
          AuthUserFile        "C:/Subversion/passwd"
          Require             valid-user
          AuthzSVNAccessFile  "C:/Subversion/acl"
        </Location>
    </VirtualHost>
    

    你有它。现在我想知道我是否可以追踪那些提出这个问题的人......

    • 1

相关问题

  • 在您分发的应用程序中使用 Apache HTTPD 运行 SSL 的最佳方式是什么?

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve