在 Ubuntu 上配置 SVN 服务器和 Trac

在 Ubuntu 上配置 SVN 服务器和 Trac

我想将我的 Ubuntu 机器配置为本地 Web 服务器,以便处理多个项目。

我对上述系统的 URL/文件夹结构有点困惑。

我希望得到类似以下内容的结果。

http://本地服务器/svn/ - 将管理 svn。

http://本地服务器/trac/- 将管理所有 Trac 系统。

我该如何配置这些多个项目

http://本地服务器/svn/project1- 是否可以通过单个 svn 服务器/trac 安装实现,或者 http://本地服务器/trac/project1/??????

等等..或者任何其他简单的方法来处理这些功能以处理多个项目。??

提前致谢!!

答案1

我目前运行具有各种不同 trac 版本的多个 trac 环境,包括多存储库分支。0.11 tracs 显然有一个 svn 存储库,而我的几个多存储库环境附加了 >1 个存储库。

svn 通过 apache mod_dav_svn(而不是 svnserve)提供服务,并且我使用 apache authnz_ldap 对所有内容进行身份验证。

https://服务器/项目/名称这是我的 trac 项目树 https://服务器/svn/名称我的 svn 仓库树是

两者的身份验证配置非常相似:

apache-trac.conf:

<LocationMatch /project[^/]*>
        AuthType        Basic
        AuthName        "Security"

        <IfModule authnz_ldap_module>
                AuthBasicProvider ldap
                AuthLDAPURL     ldap://server:389/ou=Users,ou=OxObjects,dc=server,dc=domain.net?uid
                AuthLDAPGroupAttribute memberUid
                AuthLDAPGroupAttributeIsDN off
        </IfModule>
</LocationMatch>

# For accessing project list

<Location /project>
       Deny from all
       Allow from 127.0.0.1 192.168.1. 10.24.0.

       Require ldap-group      cn=group, ou=Groups,ou=OxObjects,dc=server,dc=domain.net
</Location>

# Individual project access

<Location /project/foo1>
        Allow from 10.24.0. 192.168.1. 127.0.0.1 somerandomhost.com

        Require ldap-group      cn=visitor, ou=Groups,ou=OxObjects,dc=server,dc=domain.net
        Require user    "andy"
        Require user    "richard"
        Require user    "sam"
        Require user    "bar"
</Location>

apache-svn.conf:

<IfDefine DAV>
<IfDefine SVN>
    <IfModule !mod_dav_svn.c>
            LoadModule dav_svn_module       modules/mod_dav_svn.so
    </IfModule>

    <LocationMatch /svn[^/]*>
            AuthType        Basic
            AuthName        "Security"

            <IfModule authnz_ldap_module>
                    AuthBasicProvider ldap
                    AuthLDAPURL     ldap://server:389/ou=Users,ou=OxObjects,dc=server,dc=domain.net?uid
                    AuthLDAPGroupAttribute memberUid
                    AuthLDAPGroupAttributeIsDN off
            </IfModule>
    </LocationMatch>

    <Location /svn>
            DAV svn
            SVNParentPath /secure/svn
            require         user "sam"
            require         user "richard"

            Order deny,allow
            Deny from all
            Allow from 192.168.1. 10.24.0. 127.0.0.1

            Require ldap-group      cn=group, ou=Groups,ou=OxObjects,dc=server,dc=domain.net

            Satisfy All
    </Location>

    <IfDefine SVN_AUTHZ>
            <IfModule !mod_authz_svn.c>
                    LoadModule authz_svn_module     modules/mod_authz_svn.so
            </IfModule>
    </IfDefine>
</IfDefine>
</IfDefine>

这个配置可能可以通过正则表达式来合并,但还没有开始做。

答案2

根据您的要求,您是否计划为所有项目设立多个 svn 存储库或仅设立 1 个 svn 存储库?

您可能还想结账redmine,这是使用 Ruby on Rails 开发的 Trac 克隆。目前,redmine 的开发比 Trac 更活跃,功能也更多。Redmine 还支持多个项目。

我知道这些不是您问题的答案;但希望这些信息能帮助您缩小需求范围,从而更容易给出明确的解决方案。无论您如何决定,您问题的答案实际上在于 Apache 作为 svn 和 trac/redmine 的守门人的配置。

相关内容