Um an verschiedenen Standorten und mit mehreren Leuten eine Anwendung zu entwickeln, sollte der Einsatz eines Softwareversionierungssystems Pflicht sein.
Ich verwende Subversion, welches in Verbindung mit TRAC als Tickettool für mich wunderbar funktioniert.
Hier beschreibe ich, wie Subversion und Trac auf einem Debian Server eingerichtet werden. Natürlich gibt es dafür schon gute Anleitungen im Web, auf die ich auch verweisen werde, aber ich beschreibe hier die für mich wesentlichen Schritte beim Anlegen neuer Projekte in Subversion und Trac.
Subversion und Trac werden als Virtual Hosts angelegt. Als Webserver verwende ich Apache.
Zur erstmaligen Installation von Subversion und Trac finden sich am Ende dieses Artikels einige Links.
Kurzanleitung zum Anlegen neuer Projekte in Subversion und Trac
Ich überspringe hier die Erstinstallation von Subversion (apt-get install subversion, groupadd subversion, addgroup user subversion, WebDAV for Subversion), da dies umfangreich auf den u.g. Seiten erklärt wird.
Stattdessen komme ich direkt zum Punkt und spreche nur die wesentlichen Schritte zum Anlegen neuer Projekte mit kurzen Erklärungen an.
Neues SVN Repository anlegen
Zuerst muss ein Ort für das neue Repository gefunden werden und ein Verzeichnis angelegt werden. Dieser Ort kann überall im Datei-System sein, sollte aber sinnvoll gewählt werden....
Anschliessend wird in diesem neuen Verzeichnis mittels svnadmin das neue Repository erstellt.
# mkdir /var/svn-repos/
# svnadmin create --fs-type fsfs /var/svn-repos/your-project
Besitzer und Berechtigungen für das neue Verzeichnis setzen
Die Gruppe subversion wurde schon angelegt mittels groupadd unnd auch die user, die Zugriff auf Repository haben sollen, wurden schon der subversion Gruppe zugeordnet.
Jetzt werden für das zuvor angelegte neue Repository noch die Besitzer und Berechtigungen gesetzt.
# chown -R www-data:subversion /var/svn-repos/*
# chmod -R 770 /var/svn-repos/*
Virtual Host Konfiguration für Subversion
Um das neue Repository einfach über eine festgelegte URL erreichen zu können, muss eine vHost Config für den Apache erstellt werden. Ich habe meine Config für SVN und Trac in eine eigene .conf-Datei ausgelagert (in meinem Fall die Datei devtools.conf).
Im Quelltext sind Kommentare eingefügt, so dass man nachvollziehen kann, was welche Anweisung zu bedeuten hat. Insbesondere der Schutz des Repositories durch WebDAV sollte beachtet werden, um den unbefugten Zugriff auf das eigene Repository zu verhindern.
Nach erfolgreicher Erstellung der neuen vHost Config sollte das SVN Repository unter
https://svn.example.com/your-project erreichbar sein.
Beispiel für eine mögliche Virtual Host Konfiguration für Subversion
### vHost for Subversion ###
### Redirect from Port 80 to SSL Port 443 for better security
<VirtualHost yourServerIP:80>
ServerName svn.example.com
Redirect / https://svn.example.com/
</VirtualHost>
# Set Servername, DocsRoot and some python config
<VirtualHost yourServerIP:443>
ServerName svn.example.com
DocumentRoot /var/svn-repos
<IfModule mod_python.c>
<Files ~ "\.py$">
AddHandler python-program .py
PythonHandler mod_python.publisher
</Files>
</IfModule>
# Hier der entscheidende Eintrag, der dafür sorgt, dass das neue SVN Repository unter
# svn.example.com/your-project erreichbar ist
## Repo for Your new project ##
<Location /your-project>
DAV svn
SVNPath /var/svn-repos/your-project
# Absicherung des Repositories mittels WebDAV
# Tipp -> Erstellen des PasswortFiles durch:
# htpasswd -c /etc/apache2/svn_passes/dav_svn_for_your-project.passwd you
# der Ort des PasswortFiles kann natürlich frei gewählt werden,
# muss dann aber unten bei AuthUserFile auch richtig angegeben werden
Authtype Basic
AuthName "SVN Repository -> Your Project"
AuthUserFile /etc/apache2/svn_passes/dav_svn_for_your-project.passwd
Require valid-user
SSLRequireSSL
</Location>
</VirtualHost>
Einrichtung von Trac
Auch hier gehe ich nicht auf die Installation von Trac selbst, sondern nur auf das Anlegen eines neuen Projektes in Trac ein, da die Grundinstallation an vielen anderen Stellen im Web umfassend erklärt ist.
Deshalb ist hier der erste Schritte das Anlegen eines neuen Verzeichnisses für das neue Trac Projekt.
# mkdir -p /var/trac_projects/your-project
Als nächstes Rechte setzen.
# chmod 755 /var/trac_projects/your-project
Jetzt eine neue Trac Instanz für das Projekt erstellen.
# trac-admin /var/trac_projects/your-project initenv
Und dann die Besitzer für das Verzeichnis setzen. Und sicherstellen, dass auch die Gruppe schreiben darf.
# chown -R www-data:subversion /var/trac_projects/your-project
# chmod -R g+w /var/trac_projects/your-project
Virtual Host Konfiguration für das neue Trac Projekt
Damit nun das neue Trac Project auch übers Web erreichbar ist, muss die oben erstellte vHost Datei (devtools.conf) um folgende Zeilen erweitert werden.
### Trac ###
### Redirect from Port 80 to SSL Port 443 for better security
<VirtualHost yourServerIP:80>
ServerName trac.example.com
Redirect / https://trac.example.com/
</VirtualHost>
<VirtualHost yourServerIP:443>
ServerName trac.example.com
DocumentRoot /var/trac_projects/
## Trac Config for Your Project ##
<Location /your-project>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonInterpreter main_interpreter
PythonOption TracEnv /var/trac_projects/your-project
PythonOption TracUriRoot /your-project
AuthType Basic
AuthName "trac.example.com"
# Use the SVN password file.
AuthUserFile /etc/apache2/svn_passes/dav_svn_for_your-project.passwd
Require valid-user
</Location>
</VirtualHost>
Nach Aktivierung dieser vHost Config sollte das neue Trac Project unter folgender URL erreichbar sein:
https://trac.example.com/your-project
Jetzt sollte man sich selbst noch Admin-Rechte für das neue Trac Project geben, um Zugriff auf das Admin Menu im neuen Trac Project zu haben.
trac-admin /var/trac_projects/your-project permission add you TRAC_ADMIN Welche Rechte es gibt und wie diese gesetzt werden zeigt das Trac-Wiki.
http://trac.edgewall.org/wiki/TracPermissions
-------
Fazit:
Die Konfiguration von neuen SVN Repositories und zugehörigen Trac Projekten ist relativ einfach, sofern schon funktionierende Installationen von Subversion und Trac im Debian System vorliegen. (Wobei auch deren Grundinstallationen einfach sind).
Ich hoffe dieses Tutorial hilft, um Subversion und Trac in einer Virtual Host Umgebung auf einem Debian System einzurichten.
Abschliessend gibts noch einige Links, die mir bei sehr geholfen haben und auf denen sich viele weitere Informationen zum Thema befinden.
Weiterführende Links
Installation und Konfiguration Subversion
http://www.howtoforge.com/debian_subversion_websvn
Installation von Trac
http://trac.edgewall.org/wiki/TracInstall
Installation und Konfiguration von Subersion und Trac
http://www.voipphreak.ca/2008/11/02/tutorial-on-how-to-install-apache-subversion-and-trac-with-virtual-hosting-suppor-in-ubuntu-linux/
http://www.howtoforge.com/subversion-trac-virtual-hosts-on-ubuntu-server


Kommentar hinzufügen