Trac installieren (Debian, Apache, modwsgi, Digest-Auth)

in

Nachdem ich hier schon darüber geschrieben habe, wie man die Organisation von Softwareprojekten mit Hilfe der Ticket basierten Projektmanagementsoftware Trac verbessern kann, und wie man, bevor man dies tut, erstmal Trac und auch ein zugehöriges Versionierungssystem (in meinem Fall SVN) konfiguriert, soll es heute darum gehen, wie man denn Trac installiert.

Diese Reihenfolge ist reichlich merkwürdig, da natürlich die Installation als erstes kommt, aber irgendwie hat es sich ergeben, dass ich bei meinen ersten Trac-Installationen recht wenig dokumentiert hatte, nun aber wiedermal Trac neu auf unserem Server installiert werden mußte und ich im Zuge dessen auch endlich die Konsole mitgeloggt habe, um später die Installationsschritte besser nachvollziehen zu können.

Eines vorweg, mein oben verlinkter Artikel, in dem ich die Konfiguratioin von Trac schonmal beschrieben habe, basiert auf einer Trac-Installation, die einen Apache mit mod_python als Basis nutzt.

Hier dagegen soll es um eine Trac-Installation mit Apache und mod_wsgi gehen, d.h. ich beschreibe die Installation von modwsgi, anschließend gehts weiter mit Setuptools, danach kommt Trac (inkl. anlegen einer ersten Instanz) und anschließend zeige ich noch eine Basiskonfiguration eines Apache-VHosts für unsere erste Trac-Instanz, die dann auch gleich mit HTTP-Digest-Auth abgesichert wird.

Ich werde auch gar nicht so viel Worte verlieren, sondern die Konsole sprechen lassen, und nur kurz die einzelnen Schritte erläutern. Das heißt, ihr seht immer die jeweils notwendigen Befehle fett markiert und könnt diese einfach selbst ausführen. Ein gewisses Basiswissen im Umgang mit Linux setze ich hier aber voraus.

Also, auf gehts ...

Die Basis für dieses Tutorial ist natürlich die Trac-Seite selbst, auf der recht umfangreich die Installation beschrieben ist:

http://trac.edgewall.org/wiki/TracInstall
 

1. modwsgi installieren

Warum Apache mit modwsgi und nicht mod_python, oder einfach einen fastcgi-handler? Ich glaube das ist Geschmackssache, aber ich habe mich mal an die vom Edgewall Team preferierte Variante gehalten.

[Mi 25.05.2011 22:38, root@yourmachine:/home/sweo/python] # 

aptitude install libapache2-mod-wsgi

Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Lese Status-Informationen ein... Fertig Lese erweiterte Statusinformationen Initialisiere Paketstatus... Fertig Lese Task-Beschreibungen... Fertig ........ ........ ........ libapache2-mod-wsgi (3.3-2+b2) wird eingerichtet ... Restarting web server: apache2 ... waiting ........... Trigger für python-central werden verarbeitet ... Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Lese Status-Informationen ein... Fertig Lese erweiterte Statusinformationen Initialisiere Paketstatus... Fertig Schreibe erweiterte Statusinformationen... Fertig Lese Task-Beschreibungen... Fertig Aktueller Status: 65 Aktualisierungen [-5].

 

2. Setuptools installieren

Um die Installations von Trac und den notwendigen Zusatzkomponenten wesentlich zu vereinfachen, sollte Pythons setuptools auf jedenfall mit installiert werden. Dies ermöglicht nachher die Nutzung von easy_install.

>Welche Version von setuptools ihr benötigt, hängt von eurer Python-Version ab. Einfach die interaktive Python-Shell mittels python auf der Konsole aufrufen und ihr sehtr eure Version. In meinem Fall ist es Python 2.6.

Nachdem ihr eure Python Version wißt, müßt ihr noch das richtige Setuptools-Packet runterladen.

Einfach hier: http://pypi.python.org/packages/ unter eurer Python-Version und dann beim kleinen s setuptools suchen und die egg runterladen

[Mi 25.05.2011 22:43, root@yourmachine:/home/sweo/python] #  
 

wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg

Anschließend installieren:

[Mi 25.05.2011 22:50, root@yourmachine:/home/sweo/python] # 

sh setuptools-0.6c11-py2.6.egg

Processing setuptools-0.6c11-py2.6.egg Copying setuptools-0.6c11-py2.6.egg to /usr/local/lib/python2.6/dist-packages Adding setuptools 0.6c11 to easy-install.pth file Installing easy_install script to /usr/local/bin Installing easy_install-2.6 script to /usr/local/bin Installed /usr/local/lib/python2.6/dist-packages/setuptools-0.6c11-py2.6.egg Processing dependencies for setuptools==0.6c11 Finished processing dependencies for setuptools==0.6c11

 

3. Genshi installieren

Diese Python-Bibliothek für das Parsen und Rendern von HTML und für viele weitere Sachen ist eine Vorraussetzung für Trac, deshalb wird es hier ohne viele Worte mittels setup_tools->easy_install installiert:

[Mi 25.05.2011 22:55, root@yourmachine:/home/sweo/python] #

easy_install Genshi

Searching for Genshi Reading http://pypi.python.org/simple/Genshi/ Reading http://genshi.edgewall.org/ Reading http://genshi.edgewall.org/wiki/Download Best match: Genshi 0.6 Downloading http://ftp.edgewall.com/pub/genshi/Genshi-0.6-py2.6.egg Processing Genshi-0.6-py2.6.egg Moving Genshi-0.6-py2.6.egg to /usr/local/lib/python2.6/dist-packages Adding Genshi 0.6 to easy-install.pth file Installed /usr/local/lib/python2.6/dist-packages/Genshi-0.6-py2.6.egg Processing dependencies for Genshi Finished processing dependencies for Genshi

 

4. Babel installieren

Um Trac auch auf Deutsch, oder in der Sprache deiner Wahl :) nutzen zu können muss Babel mit installiert werden, welches den i18n support mitbringt.

[Mi 25.05.2011 22:55, root@yourmachine:/home/sweo/python] # 

easy_install Babel==0.9.5

Searching for Babel==0.9.5 Reading http://pypi.python.org/simple/Babel/ Reading http://babel.edgewall.org/ Reading http://babel.edgewall.org/wiki/Download Best match: Babel 0.9.5 Downloading http://ftp.edgewall.com/pub/babel/Babel-0.9.5-py2.6.egg Processing Babel-0.9.5-py2.6.egg creating /usr/local/lib/python2.6/dist-packages/Babel-0.9.5-py2.6.egg Extracting Babel-0.9.5-py2.6.egg to /usr/local/lib/python2.6/dist-packages Adding Babel 0.9.5 to easy-install.pth file Installing pybabel script to /usr/local/bin Installed /usr/local/lib/python2.6/dist-packages/Babel-0.9.5-py2.6.egg Processing dependencies for Babel==0.9.5 Finished processing dependencies for Babel==0.9.5

 

4. Trac installieren

Jetzt also zum Herzstück dieses Tutorials. :) Auch hier völlig unspektakulär mit easy_install.

[Mi 25.05.2011 22:58, root@yourmachine:/home/sweo/python] # 

easy_install Trac

Searching for Trac Reading http://pypi.python.org/simple/Trac/ Reading http://trac.edgewall.org/ Reading http://trac.edgewall.org/wiki/TracDownload Reading http://trac.edgewall.com/ Reading http://projects.edgewall.com/trac Reading http://projects.edgewall.com/trac/wiki/TracDownload Best match: Trac 0.12.2 Downloading ftp://ftp.edgewall.com/pub/trac/Trac-0.12.2.zip Processing Trac-0.12.2.zip Running Trac-0.12.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Uxe63h/Trac-0.12.2/egg-dist-tmp-AtCs7A catalog 'trac/locale/vi/LC_MESSAGES/messages.po' is marked as fuzzy, skipping catalog 'trac/locale/fa/LC_MESSAGES/messages.po' is marked as fuzzy, skipping catalog 'trac/locale/el/LC_MESSAGES/messages.po' is marked as fuzzy, skipping Adding Trac 0.12.2 to easy-install.pth file Installing trac-admin script to /usr/local/bin Installing tracd script to /usr/local/bin Installed /usr/local/lib/python2.6/dist-packages/Trac-0.12.2-py2.6.egg Processing dependencies for Trac Finished processing dependencies for Trac

 

 5. Erste Trac Instanz anlegen

[Mi 25.05.2011 23:08, root@yourmachine:/home/sweo/python] # 

mkdir -p /var/trac_projects/first_trac_project

[Mi 25.05.2011 23:13, root@yourmachine:/home/sweo/python] #

chmod 755 /var/trac_projects/first_trac_project

[Mi 25.05.2011 23:16, root@yourmachine:/home/sweo/python] #

trac-admin /var/trac_projects/first_trac_project/ initenv

 

6. Trac mit modwsgi konfigurieren

Wie eingangs erwähnt soll Trac auf einem Apache mit modwsgi laufen.

Hier die Anleitung dazu: http://trac.edgewall.org/wiki/TracModWSGI
 

6.1 Default Scripte erstellen lassen durch Trac (Siehe auch http://trac.edgewall.org/wiki/TracInstall#cgi-bin )

Erstmal läßt man sich das notwendige trac-wsgi-Handler-Script einfach durch Trac selbst für unser neues Projekt erstellen. Anschließend braucht man dieses neue Script nur noch in den /conf-Ordner unseres neuen Projektes kopieren.
 

[Mi 25.05.2011 23:34, root@yourmachine:/var/trac_projects] # 

trac-admin /var/trac_projects/first_trac_project deploy /tmp/deploy

Ressourcen werden kopiert von: trac.web.chrome.Chrome /root/.python-eggs/Trac-0.12.2-py2.6.egg-tmp/trac/htdocs /var/trac_projects/first_trac_project/htdocs Scripts werden erstellt. [Mi 25.05.2011 23:40, root@yourmachine:/var/trac_projects/first_trac_project] #

mv /tmp/deploy/* /var/trac_projects

[Mi 25.05.2011 23:40, root@yourmachine:/var/trac_projects] #

cd ../cgi-bin

[Mi 25.05.2011 23:44, root@yourmachine:/var/trac_projects/cgi-bin] #

cp trac.wsgi ../first_trac_project/conf/

 

6.2 mod_auth_digest im Apache aktivieren und neue Passwortdatei für Projekt anlegen

Nachdem die modwsgi-Konfigurationsdatei erstellt wurde gehts weiter mit der Absicherung des neuen Projektes.
Erstmal auth_digest im apache aktivieren und anschließend eine Passwortdatei mit einem ersten User für die neue Trac-Instanz anlegen. 

[Do 26.05.2011 19:43, root@yourmachine:/var/trac_projects/first_trac_project] # 

a2enmod auth_digest

Enabling module auth_digest. [Do 26.05.2011 19:57, root@yourmachine:/var/trac_projects/first_trac_project] #

htdigest -c first_trac_projectDigestPasswd Trac sweo

 

6.3 Apache Config für die erste Trac Instanz erstellen

Sooo, und nun sind wir fast fertig. Jetzt muss noch ein neuer Virtual Host angelegt werden, um das neue Trac-Projekt auch aurufen zu können. Ich habe hier einen Name-Based VHost gewählt, indem die entscheidenden Einträge der WSGIScriptAlias, der Directory-Eintrag zu trac.wsgi und natürlich der Location-Eintrag für die Absciherung sind.

Den ServerName müßt ihr dann für euer Projekt anpassen.

[Do 26.05.2011 20:57, root@yourmachine:/var/trac_projects/first_trac_project] # 

vi /etc/apache2/vhosts/trac_projects.conf

##### first_trac_project #### <VirtualHost *:80> ServerName trac.sweo.de DocumentRoot /var/trac_projects/first_trac_project/htdocs/ WSGIScriptAlias /first_trac_project /var/trac_projects/first_trac_project/conf/trac.wsgi <Directory /var/trac_projects/first_trac_project/conf/trac.wsgi> WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> <Location '/first_trac_project'> AuthType Digest AuthName "Trac" AuthDigestDomain /first_trac_project AuthUserFile /var/trac_projects/first_trac_project/first_trac_projectDigestPasswd Require valid-user </Location> ErrorLog /var/log/apache2/trac_first_trac_project_error.log LogLevel warn CustomLog /var/log/apache2/trac_first_trac_project_access.log combined </VirtualHost>

 

7. Trac Admin einrichten, nochmal ein chown über alles und ein Apache Neustart

So, nun aber wirklich die letzten Befehle. Erstmal den neu angelegten User zum Trac_Admin ernennen (Nutzername sweo natürlich durch euren Nutzernamen ersetzen, den ihr oben beim Digest_Auth genommen habt), danach nochmal dem neuen Ordner für die Trac Projekte den Nutzer www-data (der Apache-Nutzer) verpassen und abschliessend ein Apache-Neustart.

[Do 26.05.2011 21:37, root@yourmachine:/var/trac_projects/first_trac_project] # 

trac-admin /srv/trac/trac_projects/first_trac_project permission add sweo TRAC_ADMIN

[Do 26.05.2011 22:02, root@yourmachine:/var/trac_projects/first_trac_project] #

chown -R www-data:www-data .

[Do 26.05.2011 22:03, root@yourmachine:/var/trac_projects/first_trac_project] #

/etc/init.d/apache2 restart

 

 Fazit

Sieht alles erstmal ziemlich lang und kompliziert aus, wenn man aber einfach die hier fett gedruckten Befehle nacheinander durchgeht, ist es gar nicht so schwer, deshalb in diesem Sinne, viel Spaß mit Trac und wenn Fragen sind ... fragen. :)

 

Trackback URL for this post:

http://www.sweo.de/trackback/599

Danke für den Hinweis

Ich habe die Stelle entsprechend angepaßt.
Warum du eine leere Seite bekommst, kann ich aus der Ferne natürlich nicht sagen, aber vl. hilft dir das Apache error.log weiter.
Gruß
Jan 

Apache zeigt mir die Seite nicht an

Vielen dan für die Ausführliche beschreibung

Leider konnte ich Trac nicht an den Apache binden.

es wird mir immer angezeigt das die Seite nicht gefunden wird.

Ich benutze Debian 6. Trac selber läuft solange ich ihn üner den eigen Intrigierten server Laufen lasse.

Aufgefallen ist mir noch:

"[Do 26.05.2011 21:37, root@yourmachine:/var/trac_projects/first_trac_project] #
trac-admin /srv/trac/projekte/first_trac_project permission add sweo TRAC_ADMIN"

müste das nicht in diesem Beispiel heissen:

trac-admin /var/trac_projects/first_trac_project permission add sweo TRAC_ADMIN"

Gruß R.S

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.

Weitere Informationen über Formatierungsoptionen

CAPTCHA
Diese Frage dient dazu festzustellen, ob Sie ein Mensch sind und um automatisierte SPAM-Beiträge zu verhindern.
Bild-CAPTCHA
Enter the characters shown in the image.