Search code examples
phpapacheapache2phabricator

Phabricator install. Rewrite rules are not configured correctly


I've followed the Phabricator Configuration Guide, and after installing all dependencies, I'm facing the following message:

Request parameter '__path__' is not set. Your rewrite rules are not configured correctly.

This message is shown when I try to access www.cleverbit.com.br/phabricator/webroot/

I have a apache2.conf file configured just the way the docs suggested:

    <VirtualHost *>
  # Change this to the domain which points to your host.
  ServerName cleverbit.com.br

  # Change this to the path where you put 'phabricator' when you checked it
  # out from GitHub when following the Installation Guide.
  #
  # Make sure you include "/webroot" at the end!
  DocumentRoot /var/www/html/phabricator/webroot

  RewriteEngine on
  RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
</VirtualHost>

<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride All
        Require all granted
</Directory>

<Directory "/var/www/html/phabricator/webroot">
        Require all granted
        AllowOverride All
</Directory>

What's exactly wrong with my apache rewrite configuration?


Solution

  • Apache does not have inheritance inside Directory statements, so you also need the AllowOverride All line inside the Directory block for /var/www/html/phabricator/webroot.

    To avoid confusion, I would get rid of the /var/www Directory block, unless you have another VirtualHost that uses it (in which case, you might want to move Phabricator out from that directory to avoid accidentally creating back doors).