diff --git a/.divinerconfig b/.divinerconfig index 18dd78d6d1..4c34516b26 100644 --- a/.divinerconfig +++ b/.divinerconfig @@ -2,7 +2,17 @@ "name" : "Phabricator", "src_base" : "https://github.com/facebook/phabricator/blob/master", "groups" : { + "overview" : "Overview", + "install" : "Installing", + "config" : "Configuration", + "userguide" : "Application User Guides", + + "differential" : "Differential (Code Review)", + "diffusion" : "Diffusion (Repository Browser)", + "maniphest" : "Maniphest (Task Tracking)", + "celerity" : "Celerity (CSS/JS Management)", "aphront" : "Aphront (Web Stack)", + "console" : "DarkConsole (Debugging Console)", "storage" : "Storage" } } diff --git a/conf/default.conf.php b/conf/default.conf.php index 29ee04b34e..8af6ee9a5a 100644 --- a/conf/default.conf.php +++ b/conf/default.conf.php @@ -27,10 +27,7 @@ return array( // but make sure you specify 'https' if you have HTTPS configured. 'phabricator.conduit-uri' => null, - 'phabricator.csrf-key' => '0b7ec0592e0a2829d8b71df2fa269b2c6172eca3', - - 'phabricator.version' => 'UNSTABLE', - + // The default PHID for users who haven't uploaded a profile image. It should // be 50x50px. 'user.default-profile-image-phid' => 'PHID-FILE-f57aaefce707fc4060ef', @@ -192,5 +189,17 @@ return array( 'recaptcha.private-key' => null, +// -- Misc ------------------------------------------------------------------ // + + // This is hashed with other inputs to generate CSRF tokens. If you want, you + // can change it to some other string which is unique to your install. This + // will make your install more secure in a vague, mostly theoretical way. But + // it will take you like 3 seconds of mashing on your keyboard to set it up so + // you might as well. + 'phabricator.csrf-key' => '0b7ec0592e0a2829d8b71df2fa269b2c6172eca3', + + // Version string displayed in the footer. You probably should leave this + // alone. + 'phabricator.version' => 'UNSTABLE', ); diff --git a/conf/production.conf.php b/conf/production.conf.php index 9af5c29c9a..f4dd87dcb5 100644 --- a/conf/production.conf.php +++ b/conf/production.conf.php @@ -18,6 +18,7 @@ return array( + 'darkconsole.enabled' => false, ) + phabricator_read_config_file('default'); diff --git a/conf/setup.conf.php b/conf/setup.conf.php new file mode 100644 index 0000000000..85673eab81 --- /dev/null +++ b/conf/setup.conf.php @@ -0,0 +1,22 @@ + + # Change this to the domain which points to your host. + ServerName phabricator.example.com + + # Change this to the path where you put 'phabricator' when you checked it + # out from github when following the Installation Guide. + DocumentRoot /path/to/phabricator/webroot + + RewriteEngine on + RewriteRule ^/rsrc/(.*) - [L,QSA] + RewriteRule ^/favicon.ico - [L,QSA] + RewriteRule ^(.*)$ /index.php?__path__=$1 [L,QSA] + + # This will use "setup" defaults for configuration options, which will + # expose error messages. Before you make the install public, you should + # change this to "production" and/or customize your configuration. See + # the next section for details. + SetEnv PHABRICATOR_ENV setup + + +Now, restart apache and navigate to whichever subdomain you set up. You should +either see the Phabricator login screen, which means you're all set, or some +useful error message telling you what else you need to fix (for instance, you +may need to set up MySQL credentials). If you see something else, you did +something very wrong and/or this document lied to you. + + += Configuring Phabricator = + +Now that basic setup is complete, you should configure Phabricator. Phabricator +configuration options which control how the applications behave are stored here: + + /path/to/phabricator/conf/ + +There are several configuration templates: + + - default.conf.php: root configuration, lists every configuration option and + sets some default for it. Look in this file to figure out what you can + configure. + - development.conf.php: pulls in default.conf.php, but overrides some + configuration options to better values for doing development on Phabricator. + You probably don't need to even look at this file unless you're making + changes to Phabricator itself. + - production.conf.php: pulls in default.conf.php, but overrides some + configuration options to provide better values for a production install. + Once you've completed setup, you should switch to this configuration or + one based upon it. + - setup.conf.php: pulls in default.conf.php, but sets some flags that make + it easier to set up a Phabricator install. Switch away from this before + deploying a production install. + +While you can use these templates as-is, you'll probably want to set up custom +configuration. To do this, create a new file: + + /path/to/phabricator/conf/custom/myconfig.conf.php + +Put this in the file: + + 'some_value', + + ) + phabricator_read_config_file('production'); + +This will create a new config called "custom/myconfig" which uses the +"production" config as the default but allows you to override options. You can +select it by editing the VirtualHost or Directory entry you set up when +configuring Apache: + + + # ... + SetEnv PHABRICATOR_ENV custom/myconfig + # ... + + +Now, look through ##default.conf.php## and override any options you want to +change by providing overrides in ##myconfig.conf.php##. diff --git a/src/docs/installation_guide.diviner b/src/docs/installation_guide.diviner new file mode 100644 index 0000000000..46e460a9c2 --- /dev/null +++ b/src/docs/installation_guide.diviner @@ -0,0 +1,90 @@ +@title Installation Guide +@group install + +This document contains basic install instructions to get Phabricator up and +running. + += Installation Requirements = + +Phabricator is a LAMP application suite, so you basically need LAMP: + + - **Linux**: Some flavor of Linux is required. MacOS is an acceptable flavor + of Linux. Windows is not an acceptable flavor of Linux. Phabricator will not + install or work properly on Windows. (If you want it to, send patches.) + Phabricator is actively developed on OSX and Amazon's Linux; if you run + into issues on other flavors, send patches or complaints. + - **Apache**: You need Apache. You might be able to use something else, but + you're on your own. + - **MySQL**: You need MySQL. + - **PHP**: You need PHP 5.2 or newer. + +You'll probably also need a **domain name** and you'll certainly need +**a computer** with a connection to **the internet**. + += Installing Required Components = + +This document assumes you have "yum". If you don't, substitute whatever package +manager you do have, or go hunt down all this stuff and build it from source +if you want. + +Install things we need: + + sudo yum install git httpd php mysql-server php-mysql php-devel + +If you already have LAMP setup, you've already got everything you need. + +Now that you have git installed, grab Phabricator and its dependencies: + + $ cd somewhere/ # pick some install directory + somewhere/ $ git clone git://github.com/facebook/libphutil.git + somewhere/ $ git clone git://github.com/facebook/arcanist.git + somewhere/ $ git clone git://github.com/facebook/phabricator.git + += Installing Optional Components = + +== APC == + +Like everything else written in PHP, Phabricator will run much faster with APC +installed. You likely need to install "pcre-devel" first: + + sudo yum install pcre-devel + +Then you can either install via PECL: + + sudo yum install php-pear + sudo pecl install apc + +...or grab the package from PECL directly and follow the build instructions +there: + + http://pecl.php.net/package/APC + +Installing APC is optional but **strongly recommended**, especially on +production hosts. + +Once APC is installed, test that it is available by running: + + php -i | grep apc + +If it doesn't show up, add: + + extension=apc.so + +..to "/etc/php.d/apc.ini" or the "php.ini" file indicated by "php -i". + +== Flex 2.5.35 / Bison == + +If you want to build XHPAST (an XHP parser, which is required for developing +libphutil or Arcanist), you also need flex 2.5.35, which is a NEWER version +than flex 2.5.4. At the time of writing, most packaging systems don't have flex +2.5.35 available. You can get it from here and compile it manually: + + http://flex.sourceforge.net/ + +Then install bison normally: + + sudo yum install bison + += Next Steps = + +If everything is installed, move on to @{article:Configuration Guide}.