我想将我的 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 的守门人的配置。