LINUX-BG Адрес : http://www.linux-bg.org |
Инсталация и настройка на Trac и SVN |
От: Владимир Витков Публикувана на: 10-03-2008 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=390138959 |
Disclaimer: Описаните техники в този документ могат да ви помогнат но не е задължително да са напълно вярни и изчерпателни. Не поемам отговорност за каквито и да било реални или нереални, вреди, ползи, пропуски, паднали къщи или каквото и да е произтичащи от ползването или неползването на този документ. Тук ще се постарая да опиша по какъв начин съм настроил система състояща се от Trac и SVN която използвам за управление на проекти. Оригиналът На бълагарски In English Идеята Тъй като се занимавам с много и най-вече различни проекти, стана ясно че имам мужда от система за управление на проекти. И докато това ми се търкаляше в главата реших че ще е добре ако може да се използва за множество проекти с множество хора. Почна се търсенето, като минах през dotProject, TikiWiki, Mantis и някои други. Но просто някак си не ми допадаха. В крайна сметка се спрях на Trac и SVN. Мотивацията Избрах комбинацията Trac + SVN по следните причини
Желязото Машината на която работи всичко това е следната Debian UnstableВърху нея работят доста услуги: mysql, apache, exim, routing/shaping/nat, dns, dhcp, ntp, ftp, shell, samba (в режим на Master Browser) и други. Като цяло доста слабичка машинка по днешни стандарти, но полезна и гледана с любоФ Необходим Софтуер За да може системата да работи като хората ни трябва следният софтуер
apt-get install trac libapache2-mod-python xinetd
И започва веселбата :)
Допълнително към Python сме инсталирали python-setuptools, tracwebadmin, tracaccountmanager. Разположение на файловете Тъй като ще има няколко проекта, ще отделим специално място за цялата система. Препоръчително е да е на отделен дял. При мен се спрях на директорията /home/projects която има следната структура /home/projects/ /home/projects/trac /home/projects/trac/project1 /home/projects/trac/project2 ... ... ... /home/projects/svn /home/projects/svn/project1 /home/projects/svn/project2 ... ... ...Възможно е Trac и SVN инстанциите да се намират в директориите на проектите но така се усложнява млко конфигурацията Същинското изпълнение Създайте си директорната структура която ще ви е удобна: mkdir -p /home/projects/{trac,svn} Създайте си съответните проекти (това става с trac-admin) trac-admin /home/projects/trac/project1 initenvЩе ви бъдат зададени няколко въпроса и по точно: Име на проекта, База данни (sqlite е добър избор), тип на хранилището за код, къде се намира самото хранилище. Ограничение е че хранилището на код трябва задължително да е на същата машина (не се поддържат отдалечени), но това може лесно да се заобиколи с помощта на nfs. Създайте съответните хранилища за код (svnadmin) svnadmin create /home/projects/svn/project1 Променете правата на така създадените директории съответно на потребителя като който вървят Trac системата и svn сървъра chown -R www-data:www-data /home/projects/trac/project1 chown -R svnserv:svnserv /home/projects/svn/project1Използваме www-data тъй като под този потребител работи Apache сървъра. Потребителя svnserv сме създали предварително като за домашна директория сме му задали /home/projects/svn След като имаме вече създадени проектите време е да можем да ги покажем в браузър (иначе са безполезни). Trac може да работи като самостоятелен демон (tracd), като CGI процес (trac.cgi, trac.fcgi) или в контекста на Apache (което сме и избрали) с помощта на mod_python. В конфигурацията на Apache добавяме LoadModule python_module modules/mod_python.so # или го разрешаваме с помощта на дистрибуцията си # с какво ще обработваме съдържанието SetHandler mod_python # точно с какво (trac) PythonHandler trac.web.modpython_frontend # коя информация точно ще сервираме PythonOption TracEnvParentDir /home/projects/trac # от какво ще генерираме индекса (не е задължителен) PythonOption TracEnvIndexTemplate /home/projects/trac/listing.cs # debug mode ON PythonDebug onРестартираме сървъра и проверяваме. Трябва да се вижда нещо подобно на следната картинка Ако ли пък не ... почвайте да гледате в логовете какво пише. Следва да пуснем svn сървър. Това се прави с помощта на svnserve. В случая съм избрал да го стартирам през xinetd понеже няма да е толкова натоварен. За по голяма сигурност ще работи като отделен потребител (svnserv) Конфигурацията на xinetd е следната service subversion { # слушаме само на IPv4 адрес flags = IPv4 # услугата НЕ е спряна disable = no # потребител и група user = svnserv group = svnserv # максимален брой инстанции instances = 5 # be nice :) nice = 15 # кой точно е сървърът server = /usr/bin/svnserve # аргументи за стартирането му server_args = --inetd --root /home/projects/svn # обичайните работи (логване, типаж ...) log_on_success = PID HOST DURATION log_on_failure = HOST ATTEMPT wait = no socket_type = stream }Тествайте със svn клиент дали работи. Подсигуряване и подобряване на Услугите След като имаме работещи услуги време е да помислим за тяхното подсигуряване. А именно ето какво ще направим: За Trac системите
За svn сървъра: Забраняване на всякакъв достъп за неауторизирани потребителиТова се изпълнява като се редактират конфигурациите на svn сървъра. Те се намират в директорията в която е нашето хранилище на код. Модифицираме ги по следният начин: conf/svnserve.conf ### This file controls the configuration of the svnserve daemon ### Visit http://subversion.tigris.org/ for more information. [general] # никакъв достъп за анонимните anon-access = none password-db = passwd authz-db = authz realm = Project 1 conf/authz ### This file is an example authorization file for svnserve. ### Its format is identical to that of mod_authz_svn authorization ### files. [groups] # за кой път иде реч (правата се унаследяват) [/] # правата на потребител (четене и писане) user1 = rw # правата на всички останали (пълна нула) * = conf/passwd ### This file is an example password file for svnserve. [users] user1 = password Заключение След като сме си свършили всичката работа следва да рестартираме за един последен път apache и xinetd и да започнем да си ползваме системата. За подробности за работата с нея ... във връзките Връзки Trac mod_python Apache Subversion TracWebAdmin TracAccountManager << NVIDIA инсталация под SuSE10.1 с 3D | iptables с layer7 и pp2p под slackware 11 new! >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|