Diese Seite soll nur eine hilfestellung zum entwickeln sein - auf rechtschreibung und satzbau lege ich hier keinen wert :)
Ein neues SVN repo anlegen mit:
svnadmin create /var/svn/repo --fs-type fsfs
oder einfach ein bestehendes repo aus /var/svn kopieren
Ein neues Trac Projekt anlegen:
trac-admin /var/trac/projekt initenv
und danach fragen beantworten - das svn repo liegt dann in /var/svn/repo
SVN-Repo und Trac-Projekt muss dem webserver gehören oder chmod 777 bekommen.
Folgendes muss noch in die apache config eingefügt werden:\
Am besten man legt dafür eine extra config in /etc/apache2/sites-enabled/neuestracprojekt an:
# Erst das zeug für das SVN repo <Location /svn_neuesprojekt> DAV svn SVNParentPath /var/svn/neuesprojekt SVNAutoversioning on AuthType Basic AuthName "SVN - Your Project" AuthUserFile /var/svn/neuesprojekt/svn.passwd Require valid-user </Location> # Dann das zeug für das TRAC ScriptAlias /neuestracprojekt /usr/share/trac/cgi-bin/trac.cgi <Location "/neuestracprojekt"> SetEnv TRAC_ENV "/var/trac/neuestracprojekt" </Location> <Location "/neuestracprojekt/login"> AuthType Basic AuthName "neuestracproject" AuthUserFile /var/www/trac.htpasswd Require valid-user </Location>
mhm...
Das zusammenspiel zwischen apache und SVN tut noch nicht wirklich praktisch, so kann man z.B. keine "einzel-repos" freogeben sondern nur Gruppen.
um dies zu realsieren werden in /var/svn für jede gruppe ein verzeichnis angelegt, hier ein beispiel:
Die repos müssen dann unterhalb dieser verzeichnisse liegen, dies könnte z.b. so aussehen:
Möchte man jetzt "user_project1" aufrufen, gibt man im browser folgendes ein
http://www.meinserver.de/svn_user/user_project1
um dies wiederum zu erreichen gibt es dafür folgendes in der apache config:
<Location /svn_user> DAV svn SVNParentPath /var/svn/user SVNAutoversioning on AuthType Basic AuthName "SVN - Your Project" AuthUserFile /var/svn/user/svn.passwd Require valid-user </Location>
Dieser Block verwaltet demzufolge alle repos unterhalb /var/svn/user/.
Da pro Block nur eine passwort datei verwendet werden kann, gelten alle passwörter der /var/svn/user/svn.passwd in allen repos im selben ordner.
Einen benutzer kann man mit htpasswd recht einfach hinzufügen:
htpasswd -b /var/svn/user/svn.passwd <benutzername> <passwort>
sollte der angegebene Bneutzer schon existieren, so wird das passwort für diesen aktualisiert.
In der Chroot selbst liegt unter /bin/php ein PHP (Aktuell Version 5.1.6)
Möchte man PHP-Scripte ausführen, so kann man fpr /var/www PHP wie folgt in der /etc/apache2/sites-enabled/000-default Aktivieren:
Scriptalias /php /bin/php <Directory /var/www/> Options Indexes FollowSymLinks MultiViews +ExecCGI AllowOverride None Order allow,deny allow from all # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place #RedirectMatch ^/$ /apache2-default/ Action php-script /php AddHandler php-script .php </Directory>