mirror of
https://we.phorge.it/source/phorge.git
synced 2025-03-27 19:50:21 +01:00
Summary: Ref T988. I'm splitting the Phabricator documentation into two separate documentation books, one less technical and one more technical. Move all the `.diviner` article files around into `src/docs/user/` or `src/docs/tech/`, accordingly. The only actual changes here are a couple of config changes in the `.book` files. Test Plan: Regenerated user and technical documentation and saw stuff in the right places. Reviewers: btrahan Reviewed By: btrahan CC: chad, aran Maniphest Tasks: T988 Differential Revision: https://secure.phabricator.com/D6822
116 lines
3.9 KiB
Text
116 lines
3.9 KiB
Text
@title Configuration User Guide: Advanced Configuration
|
|
@group userguide
|
|
|
|
Configuring Phabricator for multiple environments.
|
|
|
|
= Overview =
|
|
|
|
Phabricator reads configuration from multiple sources. This document explains
|
|
the configuration stack and how to set up advanced configuration sources, which
|
|
may be useful for deployments with multiple environments (e.g., development and
|
|
production).
|
|
|
|
This is a complicated topic for advanced users. You do not need to understand
|
|
this topic to install Phabricator.
|
|
|
|
= Configuration Sources =
|
|
|
|
Phabricator supports the following configuration sources, from highest priority
|
|
to lowest priority:
|
|
|
|
- **Database**: Values are stored in the database and edited from the web UI
|
|
by administrators. They have the highest priority and override other
|
|
settings.
|
|
- **Local**: Values are stored in `conf/local/config.json` and edited by
|
|
running `bin/config`.
|
|
- **Config Files**: Values are stored in a config file in `conf/`. The file
|
|
to use is selected by writing to `conf/local/ENVIRONMENT`, or setting the
|
|
PHABRICATOR_ENV configuration variable. See below for more information.
|
|
- **Defaults**: Defaults hard-coded in the Phabricator source, which can not
|
|
be edited. They have the lowest priority, and all other settings override
|
|
them.
|
|
|
|
Normally, you install and configure Phabricator by writing enough configuration
|
|
into the local config to get access to the database configuration (e.g., the
|
|
MySQL username, password, and hostname), then use the web interface to further
|
|
configure Phabricator.
|
|
|
|
= Configuration Files =
|
|
|
|
Configuration files provide an alternative to database configuration, and may be
|
|
appropriate if you want to deploy in multiple environments or create dynamic
|
|
configuration. Configuration files are more complicated than database
|
|
configuration, which is why they are not used by default.
|
|
|
|
== Creating a Configuration File ==
|
|
|
|
To create a configuration file, first choose a name for the config (like
|
|
"devserver" or "live"). For the purposes of this section, we'll assume you chose
|
|
`exampleconfig`. Replace "exampleconfig" with whatever you actually chose in the
|
|
examples below.
|
|
|
|
First, write an `exampleconfig.conf.php` file here (rename it according to the
|
|
name you chose):
|
|
|
|
phabricator/conf/custom/exampleconfig.conf.php
|
|
|
|
Its contents should look like this:
|
|
|
|
<?php
|
|
|
|
return array(
|
|
// Specify whichever keys and values you want to set.
|
|
'example.key' => 'examplevalue',
|
|
);
|
|
|
|
For example, to specify MySQL credentials in your config file, you might create
|
|
a config like this:
|
|
|
|
<?php
|
|
|
|
return array(
|
|
'mysql.host' => 'localhost',
|
|
'mysql.user' => 'root',
|
|
'mysql.pass' => 'hunter2trustno1',
|
|
);
|
|
|
|
== Selecting a Configuration File ==
|
|
|
|
To select a configuration file, write the name of the file (relative to
|
|
`phabricator/conf/`) to `phabricator/conf/local/ENVIRONMENT`. For example, to
|
|
select `phabricator/conf/custom/exampleconfig.conf.php`, you would write
|
|
"custom/exampleconfig" to `phabrictor/conf/local/ENVIRONMENT`:
|
|
|
|
phabricator/ $ echo custom/exampleconfig > conf/local/ENVIRONMENT
|
|
phabricator/ $ cat conf/local/ENVIRONMENT
|
|
custom/exampleconfig
|
|
phabricator/ $
|
|
|
|
You can also set the environmental variable `PHABRICATOR_ENV`. This is more
|
|
involved but may be easier in some deployment environments. Note that this needs
|
|
to be set in your webserver environment, and also in your shell whenever you
|
|
run a script:
|
|
|
|
```
|
|
# Shell
|
|
export PHABRICATOR_ENV=custom/exampleconfig
|
|
|
|
# Apache
|
|
SetEnv PHABRICATOR_ENV custom/exampleconfig
|
|
|
|
# nginx
|
|
fastcgi_param PHABRICATOR_ENV "custom/exampleconfig";
|
|
|
|
# lighttpd
|
|
setenv.add-environment = (
|
|
"PHABRICATOR_ENV" => "custom/exampleconfig",
|
|
)
|
|
```
|
|
|
|
After creating and selecting a configuration file, restart your webserver. Any
|
|
configuration you set should take effect immediately, and your file should be
|
|
visible in the Config application when examining configuration.
|
|
|
|
= Next Steps =
|
|
|
|
Return to the @{article:Configuration Guide}.
|