关于带有VisualSVN Server的php:WebSVN,有人获得身份验证才能工作吗?

WebSVN with VisualSVN Server, anyone gotten authentication to work?

我在Windows服务器上安装了VisualSVN服务器,并提供多个存储库。

由于VisualSVN服务器内置的Web查看器是一种简约的Subversion浏览器,因此我想在我的存储库顶部安装WebSVN。

但是,问题是我似乎无法通过身份验证。理想情况下,我希望VisualSVN中指定的当前存储库身份验证可以与WebSVN一起使用,因此,尽管我看到了WebSVN中的所有存储库名称,但是如果没有正确的凭据,我实际上无法浏览到它们。

通过访问此google查询上最顶部链接的缓存副本,您可以看到到目前为止我发现的东西看起来很有希望。
(主要博客页面似乎已被破坏,我要指向的最顶层页面的域是the-wizzard.de)。

我在其中发现了一些可以添加到WebSVN中的php文件之一的php函数。我在那里进行了修改,但我成功完成的工作就是让WebSVN要求我输入用户名和密码,无论我输入什么内容,都不会让我进入。

不幸的是,php和apache在我看来是黑魔法。

那么,有没有人成功地将WebSVN与VisualSVN托管存储库集成在一起?


尽管我自己进行了很多黑客/试验错误定制,但我在VisualSVN服务器上使用了WebSVN身份验证。

这是我的做法:

  • 如果尚未安装,请通过下载zip文件并按照在线php手动安装说明手动安装PHP。我将PHP安装到C:\\\\ PHP

  • 将websvn文件夹提取到C:\\\\ Program Files \\\\ VisualSVN Server \\\\ htdocs \\\\

  • 完成配置websvn目录的步骤,即将configdist.php重命名为config等。我的存储库位于C:\\\\ SVNRepositories,因此要配置身份验证文件,请设置config.php行,以便: $ config-> useAuthenticationFile('C:/ SVNRepositories / authz'); //全局访问文件

  • 将以下内容添加到C:\\\\ Program Files \\\\ VisualSVN Server \\\\ conf \\\\ httpd-custom.conf:

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    # For PHP 5 do something like this:
    LoadModule php5_module"c:/php/php5apache2_2.dll"
    AddType application/x-httpd-php .php


    # configure the path to php.ini
    PHPIniDir"C:/php"

    <IfModule dir_module>
       DirectoryIndex index.html index.php
    </IfModule>

    <Location /websvn/>
       Options FollowSymLinks
       AuthType Basic
       AuthName"Subversion Repository"
       Require valid-user
       AuthUserFile"C:/SVNRepositories/htpasswd"
       AuthzSVNAccessFile"C:/SVNRepositories/authz"
       SVNListParentPath on
       SVNParentPath"C:/SVNRepositories/"
    </Location>

    这对我有用,并且websvn将仅显示为给定用户授权的目录。请注意,为了使其正常工作,您必须向所有人提供"主级别"访问权限,然后为某些用户禁用对某些子目录的访问。例如,我有一个用户没有主级别访问权限,但确实有权访问子级别。不幸的是,即使该人直接链接到filedetails.php以获取他有权查看的文件,也无法在websvn中看到任何内容。就我而言,这没什么大不了的,因为我无论如何都不希望他访问websvn,但这是您要知道的。

    此外,这会将服务器设置为ssl连接,因此一旦设置好,地址将为https://地址,而不是常规的http://。


    我正在使用VisualSVN Server,并且刚完成Trac的安装。我的目标是要获得一个更好的基于Web的存储库浏览器,而Trac无疑是我在Subversion上见过的更好的浏览器之一。转到http://www.visualsvn.com/server/trac/,安装过程非常简单。是的,Trac具有票证跟踪和Wiki系统,您可能不需要这些系统,但是存储库和日志浏览器为我出售了它。

    现在,我发现可以通过简单地添加

    来禁用Trac附带的Wiki和票证跟踪系统

    1
    2
    3
    [components]
    trac.ticket.* = disabled
    trac.wiki.* = disabled

    到trac.ini配置文件的末尾。这会导致Wiki的起始页引发错误,即找不到Wiki模块,因此您必须在启动时通过重新编辑trac.ini来设置Trac以使用时间轴(日志视图)或存储库浏览器打开。 [trac]标题下的以下内容:

    日志时间轴默认为

    1
    default_handler = TimelineModule

    对于存储库浏览器,默认为

    1
    default_handler = BrowserModule

    如果您正在寻找比默认浏览器功能更丰富的基于Web的资源库浏览器,并且您使用的是VisualSVN Server,请升级到VisualSVN Server 3.2或更高版本。

    VisualSVN服务器具有用于Subversion存储库的丰富Web界面。与WebSVN不同,VisualSVN Server的内置Web客户端是开箱即用的,不需要管理员执行任何配置任务。

    您可以在此处观看实时演示:http://demo-server.visualsvn.com/!/

    Subversion web user interface in VisualSVN Server


    我让它与Windows身份验证一起使用(实际上是AuthType VisualSVN)技巧是注释掉svn auth并将其替换为在主配置文件中找到的相同种类的auth文本。感谢Anthony Johnson提出所有其他细节。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    # For PHP 5 do something like this:
    LoadModule php5_module"F:/wamp/bin/php/php5.3.0/php5apache2_2.dll"
    AddType application/x-httpd-php .php


    # configure the path to php.ini
    PHPIniDir"f:/wamp/bin/php/php5.3.0/"

    <IfModule dir_module>
       DirectoryIndex index.html index.php
    </IfModule>

    #Alias /websvn/"F:/Program Files/VisualSVN Server/htdocs/websvn-2.3.1/"

    <Location /websvn-2.3.1/>
       Options FollowSymLinks

        AuthName"Subversion Repositories"
        AuthType VisualSVN
        AuthzVisualSVNAccessFile"F:/Repositories/authz-windows"
        AuthnVisualSVNBasic on
        AuthnVisualSVNIntegrated off
        AuthnVisualSVNUPN Off
       Require valid-user


       SVNListParentPath on
       SVNParentPath"f:/Repositories/"
    </Location>

    我是您提到的文章的作者。我发布的信息仅适用于在IIS上运行的WebSVN。据我了解,当您在Apache上使用PHP时,该软件应该"正常工作",尽管我从未在该环境中进行过设置。您是否尝试过进行一些" echo"调试(由于缺乏更好的术语),以查看身份验证确切在哪里失败?


    推荐阅读