Я хотел бы настроить свою машину Ubuntu как локальный веб-сервер для обработки нескольких проектов.
Меня немного смущает структура URL / папок в моей вышеупомянутой системе.
Я хочу получить что-то вроде следующего.
http: // локальный сервер / svn / - будет управлять svn.
http: // локальный сервер / trac / - управлять всей системой Trac.
Как я могу настроить их для несколько проектов.
http: // локальный сервер / svn / project1 - возможно ли это из одной установки svn server / trac или http: // локальный сервер / trac / project1 / ?????
и так далее ... или любой другой простой метод для совместной работы с этими функциями для работы с несколькими проектами. ??
Заранее спасибо!!
В настоящее время я запускаю несколько сред trac с различными версиями trac, включая ветвь multirepos. Треки 0.11, очевидно, имеют одно репозиторий svn, в то время как несколько моих env с несколькими репозиториями имеют> 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>
эту конфигурацию, вероятно, можно было бы объединить с помощью регулярных выражений, но до этого не дошли.
В зависимости от ваших требований, вы планируете иметь несколько репозиториев svn или только 1 репозиторий svn для всех ваших проектов?
Вы также можете оформить заказ Redmine, который является клоном Trac, разработанным с помощью Ruby on Rails. На данный момент redmine развивается более активно, чем Trac, и имеет больше функций. Redmine также поддерживает несколько проектов.
Я знаю, что это не ответ на ваш вопрос; но, надеюсь, эта информация поможет вам сузить круг ваших требований, что упростит предоставление окончательных решений. В любом случае, ответ на ваш вопрос на самом деле заключается в конфигурации Apache в качестве привратника для ваших svn и trac / redmine.