Locally installing Phabricator on Fedora 20

Phabricator project logo

Uhm, no blog post for ages. Work and university kept me way busier (and less energetic to do much other things) than expected.

As announced in May 2014, Wikimedia will replace Bugzilla with Phabricator very soon for issue tracking. The Wikimedia Phabricator production instance is up and running and the migration from Bugzilla and RT is the next step on our migration timeline. A comparison between Bugzilla and Phabricator and documentation are available.

Time to publish my quick notes about installing Phabricator locally on a Fedora 20 machine. Maybe it’s useful for somebody, maybe not.

Phabricator’s official installation guide is pretty wonderful so I’ll only cover what I, being a simple user avoiding to think on his own and just blindly following guidelines, still had to do (which might be very obvious to tech-savvy users). I expect you to know that systemctl restart httpd.service, systemctl restart mysql.service and more /var/log/httpd/error_log are your friends.

  • First of all, I got the raw content of a php file displayed in my browser. Obviously I had to install the php package first. Heh.
  • Phabricator complained about the undefined function mysql_real_escape_string – the package php-mysqlnd was not installed.
  • The next and last problem not covered by documentation was Request parameter ‘__path__’ is set, but empty. Your rewrite rules are not configured correctly. The ‘__path__’ should always begin with a ‘/’. This required changing the corresponding RewriteRule in /etc/httpd/conf/httpd.conf to have a slash in front of $1.
  • Going to http://localhost.foo in your browser should now allow you to set up your admin account.
  • To get greeted with less “unresolved setup issues”: sudo yum install php-mbstring php-gd php-pecl-apcu.

In the end, my httpd.conf file looked like this:

<VirtualHost *>
  ServerName localhost.foo
  DocumentRoot /var/www/html/phab/phabricator/webroot
<Directory "/var/www/html/phab/phabricator/webroot">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
  RewriteEngine on
  RewriteRule ^/rsrc/(.*)    -                       [L,QSA]
  RewriteRule ^/favicon.ico  -                       [L,QSA] 
  RewriteRule ^/(.*)$       /index.php?__path__=/$1  [B,L,QSA]
  ErrorLog /var/log/httpd/error_log
</VirtualHost>
This entry was posted in lang-en, phabricator. Bookmark the permalink.