Mantis kasutamine PostgreSQL andmebaasiga Debian Lenny keskkonnas

Allikas: Kuutõrvaja

Sissejuhatus

Mantis http://www.mantisbt.org/ on veebipõhine veahalduse tarkvara (ingl. k. bugtracking system). Mantis on vaba tarkvara ning kirjutatud PHP keeles.

Mantise kasutamiseks on vajalikud üldiselt sellised komponendid

  • sql andmebaas - nt PostgreSQL, MySQL
  • veebiserver - nt Apache
  • postimasina kasutamise võimalus teadete väljasaatmiseks

Mantise saab paigaldada Linux, Solaris, BSD jt operatsioonisüsteemidele, põhimõtteliselt on eeltingimuseks, et keskkonnas töötaksid Mantise kasutamiseks vajalikud komponendid. Mantise veebiliidesega peaks saama hakkama kõik levinud brauserid.

Ettevalmistused

Käesolevas tekstis kirjeldatakse 2009 aasta augusti Mantis 1.2.0rc1 versiooni kasutamist operatsioonisüsteemiga Debian Lenny koos selliste komponentidega

  • andmebaas - PostgreSQL 8.3.7
  • veebiserver - Apache 2.2.9
  • postimasin - Postfix 2.5.5

Komponentide paigaldamiseks sobib öelda

 # apt-get install apache2 php5 php5-pgsql postgresql postfix

Andmebaas

Eeldame, et andmebaasis on ettevalmistatud UTF-8 kodeeringus andmebaas ja skeem

  • kasutajanimi - mantis
  • parool - parool
  • andmebaasi nimi - portaal
  • skeem - mantis

Kusjuures selleks, et Mantise PHP rakendus kasutaks skeemi public asemel skeemi mantis, tuleb vastav kasutaja tekitada nt selliselt (vaikimisi on search_path esimene element public st skeem public)

 CREATE ROLE mantis LOGIN PASSWORD 'parool' NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;
 ALTER ROLE mantis SET search_path=mantis;

ning skeem mantis tekitada selliselt

 CREATE SCHEMA mantis AUTHORIZATION mantis;

Veebiserver

Veebiserveri seadistamisel tuleb pöörata tähelepanu tekstis Operatsioonisüsteemi Debian GNU/Linux kasutamine#PHP5 kasutamine kirjeldatud PHP seadistus-parameetritele ning lisaks sellistele PHP parameetritele, ja kohendada neid nt failist /etc/php5/apache2/php.ini

 ; Maximum allowed size for uploaded files.
 upload_max_filesize = 20M
 ..
 ; Maximum size of POST data that PHP will accept.
 post_max_size = 20M

Asugu Mantise veebiliides aadressil http://www.loomaaed.tartu.ee/veahaldus/, veebiserveri virtuaalhosti sektsioon võiks olla sellisel juhul nt selline

 <VirtualHost 192.168.1.151:80>
   ServerName www.loomaaed.tartu.ee
   ServerAdmin webmaster@www.loomaaed.tartu.ee
   DocumentRoot /srv/www
   ErrorLog     /var/log/apache2/www.loomaaed.tartu.ee-error.log
   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
   CustomLog /var/log/apache2/www.loomaaed.tartu.ee-access.log combined
   
   <Directory /srv/www/veahaldus>
     Options +FollowSymLinks
     AllowOverride None
     Order Allow,Deny
     Allow from All
 
     php_flag magic_quotes_gpc Off
     php_flag track_vars On
     php_admin_value open_basedir "/tmp:/srv/www/veahaldus"
     php_admin_value error_log "/var/log/apache2/www.loomaaed.tartu.ee-veahaldus-php-error.log"
     php_admin_value session.name "MANTISID"
   </Directory>
 
 </VirtualHost>

kus

  • ideed php_flag kasutamiseks on võetud Debian Lenny paketihalduses sisalduva Mantis v. 1.1.6 seadistusfailide näidiseid uurides, eriti fail /etc/mantis/apache.conf.
  • php_admin_value session.name "MANTISID" - tagab, et Mantise küpsis ei lähe konflikti muude sama veebikoha rakendusete omadega

Mantis tarkvara paigaldamine

Aadressil http://www.mantisbt.org/ jagatakse Mantis tarkvara, nt sobib kopeerida fail mantisbt-1.2.0rc1.tar.gz ning pakkida lahti kataloogi /srv/www/veahaldus

 # cd /srv/www
 # tar zxf mantisbt-1.2.0rc1.tar.gz
 # mv mantisbt-1.2.0rc1 veahaldus
 # chown -R www-data:www-data

Mantise paigaldamine sh andmebaasi sisu tekitamine toimub üle veebi. Selleks tuleb avada brauseris aadress http://www.loomaaed.tartu.ee/veahaldus/ ja näidata, muud lahtrid jätta täitmata ning valida Install/Upgrade Database

  • Type of Database - PostgreSQL
  • Hostname (for Database Server) - localhost
  • Username (for Database) - mantis
  • Password (for Database) - parool
  • Database name (for Database) - parool

Mantis-4.gif

Tulemusena võiks brauserisse tekkida vastuseks mida sellist

Mantis-2.gif

Rakenduse tööd juhib seadistusfail /srv/www/veahaldus/config_inc.php. Mantise sobivust keskkonda saab kontrollida aadressilt http://post-lenny.auul/veahaldus/admin/check.php

Peale paigaldamist tuleks failisüsteemi osa muuta tagasi mõne muu kasutaja omaks, nt juurkasutajaks

 # chown -R root:root /srv/www/veahaldus

Mantise seadistamine

Peale Mantise paigaldamist tuleb veahaldussüsteem seadistada konkreetseks kasutuseks

  • uue privilegeeritud kasutaja moodustamine
  • kataloogi /srv/www/veahaldus/admin kustutamine
  • Mantise poolt saadetavate eposti seadistamine

Mantise tööd juhib failisüsteemist seadistusfail /srv/www/veahaldus/config_inc.php kuhu on kasutajal soovitav teha muudatusi, vaikeväärtused on failis /srv/www/veahaldus/config_defaults_inc.php.

Uue privilegeeritud kasutaja moodustamine

  • logida sisse vaikimisi kasutaja administrator parooliga root, moodustada uus privilegeeritud õigustega kasutaja ning kustutada kasutaja administrator
 Manage -> Manage Users -> Create Account

Mantis-3.gif

Create Account ütlemise tulemusena saadetakse privilegeeritud kasutajale sellise sisuga kiri

 The user administrator has created an account for you with username "mart". In
 order to complete your registration, visit the following URL (make sure it is
 entered as the single line) and set your own access password:
 
 http://www.loomaaed.tartu.ee/veahaldus/verify.php?id=2&confirm_hash=36327c1a26cfb857f30b481acc8d3048
 
 If you did not request any registration, ignore this message and nothing will
 happen.
 
 Do not reply to this message

Uue kasutaja registreerimine viiakse lõpule minnes aadressile http://www.loomaaed.tartu.ee/veahaldus/verify.php?id=2&confirm_hash=36327c1a26cfb857f30b481acc8d3048 kus saab kasutaja omale kehtestada sobiva parooli.

admin kataloogi kustutamine

Peale tarkvara paigaldamist ja veendumist, et ta üldiselt töötab tuleks kustutada kataloog /srv/www/veahaldus/admin kuna seal olevatel skriptidel on süsteemi ressurssidele ligipääs ilma kasutajat autentimata.

 # rm -rf /srv/www/veahaldus/admin

Mantise poolt saadetava eposti seadistamine

Eposti puudutavad sellised seadistusfaili config_inc.php parameetrid, nt selliste väärtustega

 $g_administrator_email  = 'admin@loomaaed.tartu.ee';
 $g_webmaster_email      = 'toimetaja@loomaaed.tartu.ee';
 $g_from_email           = 'kasutajatugi@loomaaed.tartu.ee';
 $g_return_path_email    = 'kasutajatugi@loomaaed.tartu.ee';

Muud seadistused

  • et rahvas ei saaks endale ise kasutajaid tekitada
 $g_allow_signup         = NO;
  • et vaikimisi oleks ajavöönd sobiv, nt
 $g_default_timezone = 'Europe/Tallinn';

Mantise haldamine

Mantise haldamine sisaldab selliseid tegevusi

  • projektistruktuuri moodustamine
  • kasutajate lisamine ja eemaldamine

Projektide struktuuri tekitamine

Mantisse teevad sissekanded erinevate privileegidega kasutajad projektide kaupa. Mantise haldus moodustab projektide struktuuri valides

 Manage -> Manage Projects -> Create New Project

Kasutajate tekitamine

Privilegeeritud kasutaja saab tekitada süsteemi juurde kasutajaid valides

 Manage -> Manage Users -> Create New Account

ning näidates kasutajale sobivad väärtused, kus

  • Enabled - kasutaja saab sisse logida
  • Protected - kasutaja ei saa ise oma konto omadusi muuta (sobib nt guest kasutajatele vms)

Kasutaja tekitamisel saadetakse kasutaja kiri lingiga, mille abil kasutaja kehtestab endale ise parooli.

Mantise kasutamine

Mantise seadistamine ja korrektne kasutamine on tegelikult väärikas ambitsioon ja seda ei maksa alahinnata, nt võiks paista kasutajale priit kasutaja mart poolt süsteemi tehtud üks sissekanne selline

Mantis-5.gif

kust on näha

  • Logged in as: priit - süsteemi kasutab selle brauseri kaudu kasutaja priit
  • Project: Loomaaia andmebaas - sissekanne kuulub Loomaaia andmebaasi projekti alla
  • Reporter: mart - sissekande tegi kasutaja mart
  • Assigned To: - väärtust ei ole, st probleem pole kellelegi lahendamiseks antud (või kellegi poolt endale lahendada võetud)

Märkused

  • Debian Lenny paketihaldus sisaldab paketti mantis, kuid see on versioon 1.1.6 ja töötab väidetavalt PostgreSQLiga suhteliselt vaevaliselt.
  • Käesoleval juhul ei kasutata ADOdb süsteemi, pakett php5-adodb ei ole paigaldatud, aga tundub, et Mantis oskab teatud määral ADOdb süsteemi kasutada.
  • Kui mingil seletamatul põhjusel installer ei suuda etteantud kasutaja ja parooliga baasi kasutada, siis maksab teha kuskil mujal arvutis nö puhas paigaldus ning pg_dump ja psql abil kopeerida andmebaasi sisu ringi.
  • kui varjestamise kohta hoiatuste logimine ei ole välja lülitatud (escape_string_warning = off), siis tekib logisse ohtralt selliseid teateid
 2009-08-22 17:01:45 EEST mantis mantis 127.0.0.1(35349) 8210 idle 4a8ffa46.2012 idle 3 2009-08-22 17:01:42 EEST 0 \
   WARNING:  nonstandard use of escape in a string literal at character 209
 2009-08-22 17:01:45 EEST mantis mantis 127.0.0.1(35349) 8210 idle 4a8ffa46.2012 idle 4 2009-08-22 17:01:42 EEST 0 \
   HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.

tundub, et sarnastest lausetest

 2009-08-22 20:02:52 EEST mantis mantis 127.0.0.1(35140) 3530 idle 4a9024bc.dca idle 4 2009-08-22 20:02:52 EEST 0 \
   LOG:  statement: select tablename,'T' from pg_tables where tablename not like 'pg\_%' and schemaname not in \
   ('pg_catalog','information_schema') union select viewname,'V' from pg_views where viewname not like 'pg\_%' \
   and schemaname  not in ( 'pg_catalog','information_schema')
  • Selleks, et sessioonid püsiksid pikemad kui vaikimisi 24 minuti sobib kasutada /etc/php5/apache2/php.ini failis väärtust 864000 kümne ööpäeva pikkuste sessioonide pidamiseks
 session.gc_maxlifetime = 864000
  • Kui Mantis asub ssl-offloader taga, nt Poundi taga, siis võib olla abiks kasutada parameetrit
 $g_path = 'https://www.loomaaed.tartu.ee/veahaldus/';
  • Kui Mantis asub http-cache taga, nt Squid, siis võib olla abiks Squidi seadistusfailis öelda, et /veahaldus asju ei ladustata
 acl MANTIS urlpath_veahaldus
 no_cache deny MANTIS
  • Mantise rakendus kasutab rikkalikult küpsiseid, reeglina algavad nimed järgnevusega MANTIS_*, nt MANTIS_BUG_LIST_COOKIE

Kasulikud lisamaterjalid