Projektmanagement mit Phabricator

Der Fabrikator

Bugtracker sind das mindeste, was sich an geordneter IT dem Chaos entgegensetzen lässt. Dies und zahlreiche weitere Funktionen bietet die freie Software Phabricator, deren Installation wir in diesem Workshop beschreiben.
Die Zusammenarbeit und der Datenaustausch stehen im Mittelpunkt der Februar-Ausgabe des IT-Administrator. Darin betrachten wir die Teamarbeit mit Office 365 und ... (mehr)

Projektmanagement-Tools gibt es in der Open-Source-Welt viele. Auch die klassischen Bugtracker wie Mantis und Trac bieten zahlreiche Zusatzfunktionen wie etwa ein Wiki, sind aber oft schon in die Jahre gekommen. Eine moderne Alternative zu diesen Programmen ist das in PHP geschriebene Phabricator.

Ursprünglich wurde es von dem Facebook-Mitarbeiter Evan Priestley entwickelt, der sich mittlerweile damit selbständig gemacht hat. Es wird aktiv entwickelt und bietet neben dem Bugtracker eine Projektverwaltung, ein Wiki, einen Chat, ein Code-Review-Tool, Software-Repositories mit Git, Mercurial und Subversion und vieles mehr. Der Schwerpunkt liegt auf der Software-Entwicklung, aber Phabricator lässt sich auch für andere (IT-)Projekte verwenden und dank der modularen Struktur für eigene Zwecke maßschneidern. Zu den prominenten Anwendern von Phabricator gehören neben Facebook beispielsweise Wikimedia, FreeBSD und das KDE-Desktop-Projekt.

Flexible Installation

Zur Installation empfohlen wird der übliche LAMP-Stack, bestehend aus Linux, Apache, MySQL (oder MariaDB) und PHP. Wobei die einzelnen Buchstaben nicht unbedingt wörtlich genommen werden müssen: Statt L geht auch ein anderes Unix-System wie FreeBSD, und beispielsweise kann Nginx auch den Apache-Webserver ersetzen. Die Installation in einem Unterverzeichnis wird nicht unterstützt, stattdessen müssen Sie einen separaten virtuellen Host für Phabricator zur Verfügung stellen. Dieser VHost benötigt außerdem einen Hostnamen mit vollständiger Domain.

Wer Red-Hat-verwandte Linux-Distributionen oder Ubuntu verwendet, kann eins der auf der Installationsanleitung verlinkten Skripte verwenden, die aber auch nichts anderes tun als das, was wir hier beschreiben. Neben MySQL und dem Webserver müssen auf dem Server auch PHP und eine Reihe von PHP-Modulen vorhanden sein, also unter Ubuntu die Pakete php5, php5-mysql, php5-gd, php5-dev, php5-curl, php-apc, php5-cli und php5-json. Für bessere Performance installieren Sie optional den Alternative PHP Cache APC, aber das ist keine zwingende Voraussetzung. Derzeit ist Phabricator noch nicht kompatibel mit PHP 7 (siehe Kasten "PHP 5 auf Ubuntu 16.04").

Bild 1: Bei Problemen während der Installation gibt Phabricator brauchbare Hinweise.

PHP 5 auf Ubuntu 16.04

Die neueste Ubuntu-LTS-Version 16.04 verwendet per Default PHP 7. Phabricator ist aber bisher nicht kompatibel zu dieser PHP-Version. Also müssen Sie erst aus einer anderen Quelle PHP 5 installieren. Im Einzelnen funktioniert das folgendermaßen: sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install php5.6 php5.6-mbstring php5.6-curl php5.6-mysql sudo update-alternatives --set php /usr/bin/php5.6 sudo a2dismod php7.0 sudo a2enmod php5.6

Installation aus dem Quellcode

Phabricator checken Sie in drei Teilen aus dem Github-Repository aus. Wir legen dazu das Verzeichnis "/var/www/phabricator" an:

$ mkdir /var/www/phabricator && cd $_
$ git clone https://github.com/phacility/libphutil.git
$ git clone https://github.com/phacility/arcanist.git
$ git clone https://github.com/phacility/phabricator.git

Die Files dürfen sich auch außerhalb des Webroot-Verzeichnisses befinden. Allerdings müssen Sie bei der Konfiguration des VHosts das Phabricator-Webroot angeben, damit die PHP-Dateien gefunden werden (Listing 1).

Listing 1: VHost-Konfiguration



<VirtualHost *>
      ServerName phabricator.supersecret.org
      DocumentRoot /var/www/phabricator/phabricator/webroot
      RewriteEngine on
      RewriteRule ^/rsrc/(.*)                    -                                 [L,QSA]
      RewriteRule ^/favicon.ico               -                                 [L,QSA]
      RewriteRule ^(.*)$                                                            /index.php?__path__=$1 [B,L,QSA]
      <Directory "/var/www/phabricator/phabricator/webroot">
           DirectoryIndex index.php
           Options FollowSymLinks
           AllowOverride All
           Require all granted
      </Directory>
</VirtualHost>

Ist der Webserver konfiguriert, können Sie die Phabricator-Seite unter der gewählten URL aufrufen. Gegebenenfalls gibt Phabricator brauchbare Hinweise zur Problemlösung, falls etwa PHP-Pakete (Bild 1) oder MySQL-Credentials fehlen. Letztere tragen Sie entweder direkt in der JSON-Konfigurationsdatei "phabricator/conf/local/local.json" ein oder verwenden dafür das mitgelieferte Konfigurationstool von Phabricator:

$ cd /var/www/phabricator/phabricator
$ ./bin/config set mysql.user root
$ ./bin/config set mysql.pass supersecret

Die (etwa 60!) Datenbanken installieren Sie mit dem Storage-Tool:

./bin/storage upgrade

Dabei müssen Sie zweimal die Anwendung von Schemaänderungen bestätigen, ansonsten sollte das Ganze ohne Probleme funktionieren. Wenn Sie jetzt die URL der Phabricator-Installation aufrufen, bekommen Sie eine Eingabemaske angezeigt, in der Sie den ersten User anlegen, der gleichzeitig der Administrator wird.

Bei manchen Installationen ist es uns aber auch passiert, dass die Eingabemaske nicht aufgetaucht ist und es somit weder möglich ist, einen Account anzulegen, noch sich einzuloggen. Es fehlen noch ein "Authentication Provider" und User-Accounts. Einen normalen lokalen Account legen Sie mit dem Befehl "accountadmin" an, um ihn anschließend mit auth für ein einmaliges Login freizuschalten (Bild 2).

$ ./bin/accountadmin
$ ./bin/auth recover oliver

Wenn Sie sich jetzt unter der Phabricator-URL einloggen, finden Sie sich endlich in der Phabricator-GUI wieder, die in der Menüleiste oben auf noch offene Installationsprobleme hinweist (Bild 2). Gehen Sie am besten jedes Problem einzeln durch und beheben sie es entsprechend der von Phabricator gegebenen Anweisungen. Darüber hinaus können Sie in diesem Bereich viele weitere Einstellungen vornehmen, entweder der globalen Phabricator-Installation (Datenbank, Clustering und so weiter) oder der unterschiedlichen Anwendungen, die die Software bietet.

Bild 2: Beim ersten Einloggen zeigt Phabricator die noch offenen Probleme an.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023