Menu

trac-developer-notes

sprojekte

Trac-Chroot Developer-Notes

Diese Seite soll nur eine hilfestellung zum entwickeln sein - auf rechtschreibung und satzbau lege ich hier keinen wert :)


  • trac ist auf 0.10.2 upgedatet \
  • webadmin plugin ist installiert \
  • tracpygmets plugin ist installiert \

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>

Verschiendene SVN Auth Dateien für Gruppen-Access

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:

  • /var/svn/public - hier sollen alle user zugriff haben, auch anonyme
  • /var/svn/user - hier sollen alle registrieren user zugriff haben
  • /var/svn/strict - hier sollen meine eigenen repos legen auf die nur bestimmte user zugriff haben sollen

Die repos müssen dann unterhalb dieser verzeichnisse liegen, dies könnte z.b. so aussehen:

  • /var/svn/public
    • /public_project1
    • /public_project2
  • /var/svn/user
    • /user_project1
    • /user_project2
  • /var/svn/strict
    • /strict_project1
    • /strict_project2

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.


Tracroot und PHP

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>

[trac-chroot_bspconfig]


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.