Настройте сервер SVN и Trac в Ubuntu
Я хотел бы настроить мою Ubuntu Machine в качестве локального веб-сервера для обработки нескольких проектов.
Я немного озадачен структурой URL/ папок моей системы.
Я хочу получить что-то вроде следующего.
http://localserver/svn/ - будет управлять svn.
http://localserver/trac/ - будет управлять всей системой Trac.
Как я могу настроить их для нескольких проектов.
http://localserver/svn/project1 - это возможно с одного сервера svn / trac или http://localserver/trac/project1/?????
и так далее... или любой другой простой способ объединить эти функции для обработки нескольких проектов.??
Заранее спасибо!!
2 ответа
В настоящее время я использую несколько сред trac с различными версиями trac, в том числе multirepos branch. Очевидно, что у 0.11 tracs есть одно репозиторий SVN, в то время как к нескольким моим многопозиционным envs прикреплено>1 репо.
SVN обслуживается через apache mod_dav_svn (не svnserve), и я использую apache authnz_ldap для аутентификации во всем.
https: // сервер / проект / имя - мое дерево проекта trac https: // сервер / svn / имя - мое дерево репозитория svn
Конфигурация аутентификации очень похожа для обоих:
апач-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>
апач-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>
эта конфигурация, вероятно, может быть объединена с помощью регулярных выражений, не дошедших до нее.
Зависит от вашего требования, вы планируете иметь несколько репозиториев SVN или только 1 репозиторий SVN для всех ваших проектов?
Вы также можете воспользоваться Redmine, который является клоном Trac, разработанным с помощью Ruby on Rails. На данный момент Redmine имеет более активное развитие, чем Trac, и имеет больше возможностей. Redmine также поддерживает несколько проектов.
Я знаю, что это не ответ на ваш вопрос; но, надеюсь, информация поможет вам сузить ваши требования, что облегчит выработку окончательных решений. В любом случае, ответ на ваш вопрос на самом деле заключается в конфигурации Apache в качестве привратника для вашей SVN и trac / Redmine.