Internet - Sonstiges - Installation von SVN und Trac unter XAMPP

Sonstiges: Installation von SVN und Trac unter XAMPP

manu (49)

manu

03.09.2002 23:07

Aachen

  • 876 Postings, noch 24 bis zum nächsten Level (900)

Postings: 876

Installation von SVN und Trac unter XAMPP

Dienstag, 20. Mai 2008 23:58

  • 5.5/6 Votes: 2
5.5/6 Votes: 2
Subversion ist ein recht praktisches Versionierungssystem, das einem das Arbeiten mit seinen Projektdaten auf verschiedenen PCs ungemein erleichtert.

Allerdings sind die Informationen über die Installation von Subversion inkl. Trac unter Windows nicht besonders eindeutig. Gerade bei falschen Versionen der verschiedenen Komponenten kann es passieren, dass nichts mehr läuft.

Bei meinem ersten Versuch vor einiger Zeit dieses System zu installieren, habe ich auch mehrere Stunden gebraucht (und geflucht wie selten).

Da ich sicher irgendwann mein Betriebssystem neu installieren muss, habe ich die Installation (mit neueren Komponenten) noch einmal in einer VM durchgespielt und diese Anleitung zusammengestellt.

Los gehts mit XAMPP!

Das Ganze geht los mit der Installation von XAMPP in der aktuellen Version 1.66a, zu finden unter http://www.apachefriends.org/de/xampp-windows.html#628. Ich habe die zip-Datei gewählt (xampp-win32-1.6.6a.zip).

Die neue XAMPP 1.6.6a Version ist erschienen mit:

* Apache HTTPD 2.2.8 + Openssl 0.9.8g
* MySQL 5.0.51a
* PHP 5.2.5
* PHP 4.4.8
* phpMyAdmin 2.11.4
* FileZilla FTP Server 0.9.25
* Mercury Mail Transport System 4.52

Als erstes habe ich einen Ordner unter C:\ erstellt: xampp.
Dort kopiere ich den Inhalt der xampp-win32-1.6.6a.zip hinein.

Unter c:\xampp\apache gibt es nun die Datei apache_installservice.bat, die den Apachen als Dienst installiert, der beim Neustart von XP automatisch startet. Der Firewall sollte man schon mitteilen, dass sie Apache durchlassen darf.

Dasselbe passiert nun mit mysql: Der Dienst wird installiert durch c:\xampp\mysql\mysql_installservice.bat.

Um die beiden Dienststati im Systray sehen zu können, habe ich noch eine Verknüpfung mit dem Apachemonitor (c:\xampp\apache\bin\ApacheMonitor.exe) in den Autostart-Ordner gepackt und die MySQL-GUI-Tools von http://dev.mysql.com/downloads/gui-tools/5.0.html (Datei mysql-gui-tools-5.0-r12-win32.msi) geladen und unter c:\xampp\mysql\ installiert.
Nun gibt es unter c:\xampp\mysql\MySQL Tools for 5.0 die Datei MySQLSystemTrayMonitor.exe; eine Verknüpfung damit landet auch im Autostart.

Die benötigten XAMPP-Dienste laufen nun. Testen kann man dies, indem man im Browser 127.0.0.1 eingibt. Die XAMPP-Standardseite sollte erscheinen.

Python & Scripte, ...

Als nächstes ist Python in der Version 2.2.5 dran: http://www.python.org/ftp/python/2.5/python-2.5.msi.
Ich installiere das Paket unter c:\xampp\python\.

Zur einfacheren Installation der Python-Scripte gibts die Setuptools von http://peak.telecommunity.com/dist/ez_setup.py. Speichern mit Ziel speichern und zur Installation einfach doppelt anklicken ;).

Ich füge die Pfade zu Python und den Scripts fer Pfad-Variable hinzu, um später nicht in der Konsole immer wieder die kompletten Pfade angeben zu müssen:
Rechtsklick Arbeitsplatz->Eigenschaften->Erweitert->Umgebungsvariablen->Systemvariablen - dort den Pfad bearbeiten: ein Semikolon - falls nicht am Ende vorhanden - hinzufügen, dann die beiden Pfade: c:\xampp\python\;c:\xampp\python\Scripts;

Nun wird die Genshi-Template-Engine installiert, die für Trac benötigt wird. Genshi von http://ftp.edgewall.com/pub/genshi/Genshi-0.4.4.zip herunterladen, entpacken und dann in der Konsole in dieses Verzeichnis wechseln. Per python setup.py install wird Genshi installiert.

Jetzt kommt die DB an die Reihe. Da es anscheinend einige Probleme mit MySQL gibt, installiere ich hier die Standard-DB PySQLite. Dazu reicht es, einfach in der Konsole easy_install pysqlite einzugeben.
(Alternativ dazu gibts den Installer: http://initd.org/pub/software/pysqlite/releases/2.4/2.4.1/pysqlite-2.4.1.win32-py2.5.exe)

...Subversion (SVN), ...

Die Subversion-Version, die ich verwende ist die 1.4.6, zu finden unter http://subversion.tigris.org/project_packages.html
Win32 packages built against Apache 2.2: svn-1.4.6-setup.exe
SVN installiere ich mit dem Installer (svn-1.4.6-setup.exe) unter c:\xampp\Subversion.

Die dazugehörige Python-Subversion-Bibliothek wird wieder über die Konsole installiert:
XML: (Auswählen)easy_install -Z http://subversion.tigris.org/files/documents/15/41076/svn-python-1.4.6.win32-py2.5.exe

Die Installation ist erfolgrech verlaufen, wenn als letzte Meldung erscheint: Finished processing dependencies for svn-python==1.4.6.

Zusätzlich installiere ich noch den SVN-Client TortoiseSVN (http://tortoisesvn.net/downloads, TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi), der sich in den Explorer einklinkt und die Arbeit mit SVN ziemlich vereinfacht ;)

...mod_python, ...

Der Apache benötigt noch die Python-Unterstützung per mod_python. Die mod_python-Version, die mit der verwendeten Python-Version 2.5 zusammen läuft gibts unter
http://apache.autinity.de/httpd/modpython/win/3.3.1/mod_python-3.3.1.win32-py2.5-Apache2.2.exe.

Bei der Installation wird Python unter c:\xampp\python\ gefunden, Apache allerdings nicht. Daher gibt man das Apache-Verzeichnis c:\xampp\apache an.

Nach der Installation muss noch die Apache-Konfiguration angepasst werden. Dazu gehts in die c:\xampp\apache\conf\httpd.conf. Die folgende Zeile muss in die Modulliste:
LoadModule python_module modules/mod_python.so.
Ich habe sie einfach hinterdie Zeile
LoadModule rewrite_module modules/mod_rewrite.so
gesetzt. Nach einem Apache-Neustart ist das Modul installiert.

...und Trac!

Nun wird als Letztes Trac aus dem Edgewall-Repository installiert.

Dazu wechsele ich in der Konsole in einen Ordner, in den ich die Installationsdateien ablege (z.B. c:\temp\install\trac) und gebe dort
svn checkout http://svn.edgewall.org/repos/trac/tags/trac-0.11rc1
ein, und die trac-Daten werden in den Ordner trac-0.11rc1 geschoben (Ich habe die letzte RC-Version (0.11RC1) genommen.
Mit einem cd trac-0.11rc1 in der Konsole wechsle ich dort hinein und gebe zur Installation das altbekannte python setup.py install ein.

Das Repository

Das Repository wird jetzt eingerichtet, in dem später die Daten der Projekte landen.
Ich erstelle dazu den Ordner c:\xampp\repository\, darin einen Ordner trac und einen svn.

Um ein neues SVN-Projekt zu erstellen, gibt es zwei Möglichkeiten:

1. svnadmin create c:\xampp\repository\svn\testprojekt (erstellt den angegebenen Ordner mit den erforderlichen svn-Daten) oder
2. Ordner unter Repository erstellen (z.B. c:\xampp\repository\svn\testprojekt), dann Rechtsklick->TortoiseSVN->Create repository here.

Projekt in Trac initialisieren

Das 'Testprojekt' wird nun in Trac folgendermaßen über die Konsole initialisiert:
trac-admin c:\xampp\repository\trac\testprojekt initenv.

Die benötigten Daten habe ich folgendermaßen eingegeben:

Project Name [My Project]> Testprojekt
Database connecting string [sqlite:db/trac.db]>[Enter]
Repository type [svn]>[Enter]
Path to repository [/path/to/repos]>c:\xampp\repository\svn\testprojekt (der oben erstellte Ordner mit den svn-Daten)
Template directory [c:\xampp\python\share\trac\templates]>[Enter]


Erscheint die Meldung Congratulations! ist das Testprojekt in Trac eingebunden.

Zugriff und Test

Die Verzeichnisse c:\xampp\repository\svn und c:\xampp\repository\trac werden nun mit einem Verzeichnisschutz versehen und per Apache-Direktiven auf dem Webserver zur Verfügung gestellt.

Zuvor binde ich allerdings noch die beiden Module mod_dav_svn.so und mod_authz_svn.so aus c:\xampp\Subversion\bin ein. Ich habe sie dazu in den Apache-Modul-Ordner kopiert (c:\xampp\apache\modules), dann in der httpd.conf unter die Zeile
#LoadModule bw_module modules/mod_bw.so diese beiden Zeilen hinzugefügt:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so


Den Verzeichnisschutz übernimmt die Datei .htpasswd, die mit dem User admin und dem Passwort admin folgendermaßen erstellt wird (hier sollte man natürlich etwas eindeutigere Benutzer/Passwörter einstellen):

Über die Konsole gehts in das Verzeichnis c:\xampp\apache\bin. Dort wird
htpasswd.exe -c .htpasswd admin
aufgerufen, danach wird man 2x nach einem Passwort für den User admin gefragt (hier lautet es einfach auch admin).
Die .htpasswd lege ich nun bspw. unter c:\xampp\repository\svn bzw. trac ab und füge in der httpd.conf ans Ende folgende Zeilen, um den Zugriff auf svn und trac via Browser zu gewährleisten:

PHP: (Auswählen)Alias /trac "C:/xampp/Python/Lib/site-packages/Trac-0.11rc1-py2.5.egg/trac/htdocs"
<Directory "C:/xampp/Python/Lib/site-packages/Trac-0.11rc1-py2.5.egg/trac/htdocs">
   Options Indexes MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

<Location /tracs>
   SetHandler mod_python
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnvParentDir "c:/xampp/Repository/Trac"
   PythonOption TracUriRoot /tracs
   Order deny,allow
   allow from 127.0.0.1
   allow from 192.168.1.28
   deny from all
</Location>

<LocationMatch "/tracs/[^/]+/login">
   AuthType Basic
   AuthName "Trac"
   AuthUserFile C:/xampp/Repository/trac/.htpasswd
   Require valid-user
   Order deny,allow
   allow from 127.0.0.1
   allow from 192.168.1.28
   deny from all
</LocationMatch>

<Location /svn>
    DAV svn
    SVNListParentPath on
    SVNParentPath C:/xampp/Repository/svn
    AuthType Basic
    AuthName "Subversion repositories"
    AuthUserFile C:/xampp/Repository/svn/.htpasswd
    #AuthzSVNAccessFile svnaccessfile
    Require valid-user
</Location>


Nach einem Apache-Neustart ist die Konfiguration bereit.

Zum Testen kann man nun http://127.0.0.1/tracs und http://127.0.0.1/svn eingeben: hier sollte nun das obige Testprojekt auftauchen. Im Falle von Trac erscheint bei Klick auf den Link die Trac-Oberfläche, in der man sich bspw. einloggen kann, um neue Tickets zu schreiben. Die Konfiguration ist allerdings etwas aufwendiger - ich gehe vielleicht in einem späteren Posting darauf ein.

Wie wird nun SVN benutzt?

Das Testprojekt ist ja bereits erstellt und ich benutze nun TortoiseSVN, um das Respository mit Daten zu füllen:

Im Verzeichnis c:\xampp\htdocs (das Webroot des Servers) erstelle ich einen Ordner testprojekt. Nun klicke ich mit der rechten Maustaste auf den Ordner und klicke auf SVN Checkout.

Da ich gerade an dem Rechner sitze, auf dem auf SVN läuft, reicht ein
file:///C:/xampp/Repository/svn/testprojekt.

Man kann aber auch aus der Ferne zugreifen. Dazu muss die IP oder der Domainname bekannt sein (siehe auch dieses Posting).
Der URL wäre in diesem Falle
http://127.0.0.1/svn/testprojekt.

Nach Klick auf Ok steht das SVN-Repository. Das Verzeichnis c:\xampp\htdocs\test kann nun befüllt werden; Rechtsklick und TortoiseSVN->Add fügt neue Daten zum Projekt hinzu, mit Rechtsklick SVN Commit werden die Daten ins Repository übertragen.

Der Gag bei der Geschichte ist nun, dass bei jedem Commit geänderte Daten eine neue Version erstellen und man auf ältere Versionen zurückgreifen kann (In Trac kann man die Änderungen unter Browse Source nachvollziehen).

Außerdem erleichtert dieses System die Arbeit im Team und auf mehreren verschiedenen Rechnern. Ich möchte es nicht mehr missen (und muss sagen, die schwierige Installation hat sich gelohnt

Das wars fürs erste. Sicher habe ich das ein oder andere nicht oder nicht ausführlich genug angesprochen. Jeder ist aber gerne eingeladen, seinen Senf hinzuzufügen. ;)
Signatur:\\\"I have not failed. I\\\'ve just found 10,000 ways that won\\\'t work.\\\" - Thomas Alva Edison (1847-1931)
Bookmark setzen!:Zu Google Bookmark hinzufügen.Zu bloglines hinzufügen.Zu Newsgator hinzufügen.Zu FURL hinzufügen.Zu DIGG hinzufügen.Zu Webnews hinzufügen.Zu Netscape hinzufügen.Zu Yahoo MyWeb hinzufügen.Zu spurl.net hinzufügen.Zu diigo hinzufügen.Zu Newsvine hinzufügen.Zu del.icio.us hinzufügen.Zu SIMPIFY hinzufügen.Zu Mister Wong hinzufügen.Zu Linkarena hinzufügen.Zu isio.de hinzufügen.Zu Oneview hinzufügen.Zu yigg.de hinzufügen.Zu reddit hinzufügen.Zu StumbleUpon hinzufügen.Zu Slashdot hinzufügen.Zu Blinklist hinzufügen.Zu Technorati hinzufügen.Zu Blogmarks hinzufügen.Zu Blinkbits hinzufügen.Zu ma.gnolia hinzufügen.Zu smarking.com hinzufügen.Zu Netvouz hinzufügen.Zu co.mments hinzufügen.Zu Connotea hinzufügen.Zu de.lirio.us hinzufügen.

Specials

Bytefresser Specials: Anno 1404

Umfrage

Welches ist Dein Lieblings-Anno?

(51 Stimmen)

1. Ganz klar: Anno 1800!
2. Anno 2205
3. Anno 2070
4. Anno 1404
5. Anno 1701
6. Anno 1503
7. Anno 1602
8. Anno Online

Benutzer-Counter

Besucher gesamt: 1.186.307
Besucher heute: 29
Besucher gestern: 80
Max. Besucher/Tag: 900
Gerade online: 5
Max. online: 77
Seiten gesamt: 21.192.216
Aufrufe diese Seite: 11.619

Tag-Cloud

  ordner     \xampp\apache     location     verzeichnis     python     pfade     \xampp\python\     bytefresser     internet     apache     projekt     enter     konsole     dienst     testprojekt     komponenten     sonstiges     repository     verkn     scripte     subversion     mysql     version     installation     loadmodule     system     xampp     daten     zugriff     rechtsklick