Instalacja Trac w Ubuntu
Trac to połączenie wiki, kontroli błędów oraz systemu zarządzania projektami. Jest to open source aplikacja napisana w Pythonie, działająca jako witryna sieci web.
Jako web developer, lubię mieć porządek w projektach - notatki, pomysły listę błędów i todo. To wszystko plus interfejs webowy do repozytorium SVN danego projektu daje mi Trac. Dlatego kilka dni temu postanowiłem zainstalować ten software na swoim komputerze, który biega pod kontrolą Ubuntu 8.10.
Trafiłem na bardzo przejrzysty tutorial, który krok po kroku przeprowadzi nas przez proces instalacji. Jako że owy przewodnik jest w wersji angielskojęzycznej, postanowiłem się z grubsza zaprezentować howto w wersji polskiej.
UWAGA! Przewodnik w wersji polskiej przygotowano na bazie oryginału. Przetestowano z powodzeniem działanie na Ubuntu 8.10. Autor bloga nie gwarantuje działania aplikacji Trac w każdej wersji systemu - zależy to w głównej mierze od aktualnej konfiguracji systemu. Przewodnik przygotowany dla średnio zaawansowanych użytkowników systemu Linux.
W Ubuntu jest o tyle łatwo, że wystarczy wywołać komendę
% sudo apt-get install trac
aby zainstalować Trac’a wraz z zależnymi pakietami.
Oczywiście do działania potrzebujemy serwer Apache, ale on jest instalowany domyślnie z Ubuntu.
Ważne teraz, aby zainstalować moduł Pythona dla Apache. W tym celu wykonujemy
% sudo apt-get install libapache2-mod-python2.4
W kolejnym kroku, zakładamy katalog w którym będą trzymane pliki naszych projektów:
% sudo mkdir /var/lib/trac
% sudo chown www-data:www-data /var/lib/trac
W pierwszej linii załozono katalog, w grugiej nadano prawa własności oraz grupy dla użytkownika www-data (Apache).
Następnie edytujemy <virtualhost> w Apache (prawdopodobnie będzie to plik dostępny /etc/apache2/sites-enabled/ (nazwa zależna od konfiguracji Apache, u mnie plikiem tym jest /etc/apache2/sites-enabled/default)). Wpis powinien mieć postać:
<Location /projects>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac
PythonOption TracUriRoot /projects
</Location>
Godne uwagi - /projects - będzie to URI pod jakim będzie dostępna lista wszystkich hostowanych projektów. Nazwę można zmienić na dowolną (np. /trac) w dwóch miejscach, linii pierwszej oraz piątej powyższego wpisu.
Do zakładanego projektu możemy (opcjonalnie) podpiąć repozytorium SVN. Jeśli nie mamy repozytorium, możemy je bardzo prosto utworzyć wykonując poniższy kod:
% sudo mkdir /var/lib/svn
% sudo mkdir /var/lib/svn/[NAZWA PROJEKTU]
% sudo svnadmin create /var/lib/svn/[NAZWA PROJEKTU]
gdzie zamieniamy [NAZWA PROJEKTU] na dowolny ciąg znaków alfanumerycznych.
Następnie zmieniamy prawa własności z root na www-data i restartujemy serwer Apache:
% sudo chown -R www-data /var/lib/svn/[NAZWA PROJEKTU]
% sudo chown -R www-data /usr/share/trac
% sudo /etc/init.d/apache2 restart
Projekt Trac zakładamy poprzez wywołanie komendy:
% sudo trac-admin /var/lib/trac/[NAZWA PROJEKTU] initenv
Aplikacja trac-admin zada nam kilka pytań i zdefiniuje środowisko naszego projektu. Niestety robi wszystko jako użytkownik root, dlatego musimy jeszcze raz skorygować prawa własności z root na www-data:
% sudo chown -R www-data /var/lib/trac/[NAZWA PROJEKTU]
Teraz po otwarciu w przeglądarce adresu http://localhost/projects (w zależności co zdefiniowaliśmy w konfiguracji Apache) powinna ukazać się nam lista dostępnych projektów wraz z linkami do nich.
Ostatnim krokiem, chociaż wcale nie wymaganym, jest włączenie uwierzytelnienia.
W tym celu tworzymy plik haseł za pomocą dostępnego wraz z Apache htpasswd:
% sudo htpasswd -c /var/lib/trac/[NAZWA PROJEKTU]/.htpasswd [NAZWA UZYTKOWNIKA]
np.:
% sudo htpasswd -c /var/lib/trac/WebitPl/.htpasswd dominik
Po wywołaniu komendy htpasswd zostaniemy poproszeni o podanie oraz powtórzenie hasła. Jeśli oba będą takie same, do pliku /var/lib/trac/WebitPl/.htpasswd zostanie dodane hasło dla użytkownika dominik.
Na koniec informujemy serwer o możliwości uwierzytelniania użytkowników. Dokonujemy zatem prostej aktualizacji pliku z konfiguracją naszego serwera webowego:
<Location /projects>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac
PythonOption TracUriRoot /projects
#dodajemy informacje o uwierzytelnieniu
AuthType Basic
AuthName "Trac Projects"
AuthUserFile /var/lib/trac/[NAZWA PROJEKTU]/.htpasswd
Require valid-user
</Location>
To wszystko. Uwierzytelnienie powinno działać - w prawym górnym rogu projektu Trac widoczny jest link Login. Po kliknięciu na niego, pojawi się okienko do podania loginu i hasła.
O chwała Ci za ten tutorial