X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=doc%2FConfig.md;h=fbc9ff1fd4c29652703ac81b5075cbcbc308f873;hb=10687244be96817728b968c1980c84633cdb6cbe;hp=788c1cd0b6c1fd38c997c76d7a93042a6320907f;hpb=5790a0c58a5d044c9c0cba8496db07fa7d0bc0b6;p=friendica.git diff --git a/doc/Config.md b/doc/Config.md index 788c1cd0b6..fbc9ff1fd4 100644 --- a/doc/Config.md +++ b/doc/Config.md @@ -1,55 +1,66 @@ -Config values that can only be set in config/local.ini.php +Config values that can only be set in config/local.config.php ========================================================== * [Home](help) -Friendica's configuration is done in two places: in INI configuration files and in the `config` database table. +Friendica's configuration is done in two places: in PHP array configuration files and in the `config` database table. Database config values overwrite the same file config values. ## File configuration -WARNING: some characters `?{}|&~![()^"` should not be used in the keys or values. If one of those character is required put the value between double quotes (eg. password = "let&me&in") -The configuration format for file configuration is an INI string returned from a PHP file. -This prevents your webserver from displaying your private configuration it interprets the configuration files and displays nothing. +The configuration format for file configuration is an array returned from a PHP file. +This prevents your webserver from displaying your private configuration. It interprets the configuration files and displays nothing. A typical configuration file looks like this: ```php - [ + // Comment line + 'key' => 'value', + ], + 'section2' => [ + 'array' => ['value0', 'value1', 'value2'], + ], +]; +``` -; Comment line +### Configuration location -[section1] -key = value -empty_key = +The `config` directory holds key configuration files and can have different config files. +All of them have to end with `.config.php` and must not include `-sample` in their name. -[section2] -array[] = value0 -array[] = value1 -array[] = value2 +Some examples of common known configuration files: +- `local.config.php` holds the base node custom configuration. +- Any other file in this folder is meant for additional configuration (e.g. for addons). -INI; -// Keep this line -``` +Addons can define their own default configuration values in `addon/[addon]/config/[addon].config.php` which is loaded when the addon is activated. -### Configuration location +If needed, an alternative `config` path can be used by using the `FRIENDICA_CONFIG_DIR` environment variable (full path required!). +This is useful in case of hardening the system by separating configuration from program binaries. -The `config` directory holds key configuration files: +### Static Configuration location -- `config.ini.php` holds the default values for all the configuration keys that can only be set in `local.ini.php`. -- `settings.ini.php` holds the default values for some configuration keys that are set through the admin settings page. -- `local.ini.php` holds the current node custom configuration. -- `addon.ini.php` is optional and holds the custom configuration for specific addons. +The `static` directory holds the codebase default configurations files. +They must not be changed by users, because they can get changed from release to release. -Addons can define their own default configuration values in `addon/[addon]/config/[addon].ini.php` which is loaded when the addon is activated. +Currently, the following configurations are included: +- `defaults.config.php` holds the default values for all the configuration keys that can only be set in `local.config.php`. +- `settings.config.php` holds the default values for some configuration keys that are set through the admin settings page. -#### Migrating from .htconfig.php to config/local.ini.php +#### Migrating from .htconfig.php to config/local.config.php The legacy `.htconfig.php` configuration file is still supported, but is deprecated and will be removed in a subsequent Friendica release. The migration is pretty straightforward: -If you had any addon-specific configuration in your `.htconfig.php`, just copy `config/addon-sample.ini.php` to `config/addon.ini.php` and move your configuration values. -Afterwards, copy `config/local-sample.ini.php` to `config/local.ini.php`, move the remaining configuration values to it according to the following conversion chart, then rename your `.htconfig.php` to check your node is working as expected before deleting it. +If you had any addon-specific configuration in your `.htconfig.php`, copy `config/local-sample.config.php` to `config/addon.config.php` and move your configuration values. +Afterwards, copy `config/local-sample.config.php` to `config/local.config.php`, move the remaining configuration values to it according to the following conversion chart, then rename your `.htconfig.php` to check your node is working as expected before deleting it.