заводим связку svn + trac + apache22 на FreeBSD
Весь софт ставится из портов.
ставим apache22 не забываем включить поддержку DBD
trac будет жить в папке www, а его базы в /var/trac
настраиваем apache
NameVirtualHost xx.xx.xx.xx:80
<VirtualHost projects.example.com:80>
DocumentRoot "/www/trac"
ServerName projects.example.com
ServerAlias projects
Options Indexes FollowSymlinks MultiViews
ErrorLog "/var/log/projects.example.com-error.log"
CustomLog "/var/log/projects.example.com-access.log" common
# Секция в которой мы говорим что все что /www/trac будет обрабатывать mod_python
<Location />
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac
PythonOption TracUriRoot /
</Location>
# У меня несколько проектов и занимаются или разные люди которые не должны иметь доступ к данным друг другу. Это простой способ разграничить доступ. Сам путь соответствует пути /var/trac/project1
<Location /project1 >
AuthType Basic
AuthName "Project1 svn AREA"
AuthUserFile /www/trac/access/.htpasswd_project1
Require valid-user
</Location>
#полезная информация.
<Location /mpinfo>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler mod_python.testhandler
</Location>
</VirtualHost>
Поскольку я обычно ставлю такие вещи отдельно в jail, web сервер кроме обслуживания trac больше ничем не занимается. Отсюда с точки зрения безопасности и просто удобства user и group указаны svn.
добавляем в /etc/rc.conf
apache22_enable="YES"
все на этом закончена настройка apache, запускать его не надо, тем более он все равно не запустить поскольку пользователь и группа svn, отсутствуют в системе.
--
Установка subversion
Все также ставится из портов
При установке обязательно посмотреть с какими параметрами будет устанавливаться svn
Обязательно поддержка DBD, APACHE2_APR, MOD_DAV_SVN если оный не был указан при установке apache)
после установки надо убедиться что пользователь и группа SVN присутствуют в системе
mkdir /svn
# создаем репозитарий проекта
svnadmin create /svn/project1
cd /svn/project/conf
# разбиваем на группы.
файл authz
[groups]
project1_users = user1,user2,user3
[project1:/]
@project1_users = rw
* =
# добавляем пароли
файл passwd
[users]
user1 = password1
user2 = password2
все, теперь chown -R svn:svn /svn; chmod 700 /svn
--
Ставим Trac, тоже из портов. Ставится он в /usr/local/lib/python2.6/site-packages/Trac-0.11.4-py2.6.egg/trac что для нас не очень удобно поэтому делаем symlink
ln -s /usr/local/lib/python2.6/site-packages/Trac-0.11.4-py2.6.egg/trac /www/trac
создаем htaccess /www/trac/access/.htpasswd_project1
инициализируем хранилище trac для проекта
trac-admin /var/trac/project1 initenv
отвечаем на заданные вопросы
наделяем правами админа пользователя user1
trac-admin /var/trac/project1 permission add user1 TRAC_ADMIN
выставляем права.
chown -R svn:svn /var/trac ; chmod 700 /var/trac
меняем лого
в файле /var/trac/project1/conf/trac.ini
находим секцию [header_logo]
src = /project1/chrome/common/my_logo.gif
сам файл с логотипом необходимо положить в /www/trac/htdocs/
типа все.