Mantis
| Fiche express | |
|---|---|
| Type | Bugtracker |
| Licence | Open source (GPLv2) |
| Technologie | PHP / MySQL |
| Site | mantisbt.org |
| Voir aussi | Indefero · Redmine · Jira |
MantisBT (souvent abrégé Mantis) est un bugtracker libre écrit en PHP, plus simple à déployer que Redmine ou Jira pour un usage centré sur le suivi d'anomalies plutôt que sur la gestion complète de projet.
Installation
Récupérer une archive sur la [http://www.mantisbt.org/download.php page de téléchargement officielle], puis installer les paquets nécessaires côté serveur (exemple RHEL/CentOS) :
yum install -y php php-devel php-mysql mysql-server httpd
chkconfig mysqld on
chkconfig httpd on
/usr/bin/mysqladmin -u root password 'MOT_DE_PASSE'
Sur RHEL6 et antérieur, désactiver le pare-feu legacy iptables au profit d'une configuration explicite adaptée à Mantis (ou le laisser actif et ouvrir uniquement le port HTTP/HTTPS) :
chkconfig iptables off
service iptables stop
Si SELinux bloque le fonctionnement de l'application et qu'un diagnostic via
audit2allow n'est pas concluant, le désactiver en dernier recours dans
/etc/selinux/config (SELINUX=disabled) puis redémarrer la machine —
à réserver aux cas où une politique dédiée n'est pas envisageable, cf. SELinux.
Copier les fichiers téléchargés dans la racine web puis donner la propriété à l'utilisateur du serveur web :
chown -R apache:apache /var/www/html/mantis
Pendant l'installation via le navigateur, un répertoire doit être temporairement inscriptible ;
le remettre en lecture seule dès l'installation terminée plutôt que de le laisser en
777 :
chmod 777 -R /mantis # le temps de l'installation seulement
# ... installation via l'interface web ...
chmod 755 -R /mantis
rm -rf /mantis/admin # supprimer le répertoire d'administration après installation
Configuration
Base de données
mysql -u root -p
CREATE DATABASE mantisbt;
exit
Langue
Passer l'interface en français dans config_defaults_inc.php :
$g_default_language = 'french';
Fuseau horaire PHP
sed -i "s/date.timezone =.*/date.timezone = 'Europe\/Brussels'/" /etc/php.ini
Virtual host Apache
echo 'Include /etc/httpd/conf/mantis.conf' >> /etc/httpd/conf/httpd.conf
mkdir /etc/httpd/conf/includes
# /etc/httpd/conf/includes/mantis.conf
<Directory "/var/www/html/">
Options All
AllowOverride None
# Apache 2.2 : Order/Allow/Deny — sous Apache 2.4, remplacer par "Require all granted"
Order deny,allow
Allow from all
</Directory>
<VirtualHost IP_SERVEUR>
DocumentRoot /var/www/html
</VirtualHost>
Migration depuis une instance existante
mysqldump -u root -p --databases mantisbt > /root/mantisbt_$(date +%Y%m%d).sql
Puis restaurer ce dump sur la nouvelle instance avant de copier les fichiers uploadés (pièces jointes) du répertoire de données Mantis.
Authentification via Active Directory / LDAP
Installer les paquets nécessaires :
yum install -y httpd mysql-server php php-mysql openldap-clients php-ldap
Puis, dans config_inc.php :
// --- Authentification LDAP ---
$g_login_method = LDAP;
$g_ldap_protocol_version = 3;
$g_ldap_server = 'ldap://ANNUAIRE.DOMAINE.TLD';
$g_ldap_port = 389;
$g_ldap_bind_dn = 'CN=Nom_Commun,OU=Unite_Organisationnelle,DC=domaine,DC=tld';
// C'est ce champ qui fait la correspondance entre Mantis et l'Active Directory :
$g_ldap_uid_field = 'sAMAccountName';
$g_ldap_bind_passwd = 'MOT_DE_PASSE_COMPTE_TECHNIQUE';
$g_ldap_root_dn = 'OU=Unite_Organisationnelle,DC=domaine,DC=tld';
$g_ldap_organization = '(objectClass=*)';
$g_ldap_realname_field = 'cn';
// Récupère l'email du compte LDAP (si OFF, un compte local est nécessaire pour se connecter)
$g_use_ldap_email = ON;
$g_use_ldap_realname = ON;
// Retire l'obligation de préciser l'OU de base
$g_ldap_follow_referrals = OFF;
// --- Inscription ---
$g_allow_signup = OFF;
$g_lost_password_feature = OFF;
Pour valider la syntaxe d'un DN/OU avant de le mettre en configuration, tester au préalable
avec un script PHP LDAP minimal ou un outil comme ldapsearch.
Personnalisation
Les libellés et droits par groupe se modifient dans custom_strings_inc.php et
config_inc.php — préférer un fichier config_inc.php propre plutôt que
de modifier les fichiers du cœur applicatif, pour rester compatible avec les futures mises à
jour.
Installation depuis les sources (Git)
git clone https://github.com/mantisbt/mantisbt.git
cd mantisbt
git submodule update --init