| 1 | = The Trac Configuration File = |
| 2 | |
| 3 | ''[Note To Editors] Please discuss documentation changes in the [#Discussion] section. Even better, send us [TracDev/SubmittingPatches documentation patches] against the ''code'' (i.e. where the configuration entries are documented), either on Trac-dev or on new tickets. '' |
| 4 | |
| 5 | [[TracGuideToc]] |
| 6 | [[PageOutline]] |
| 7 | |
| 8 | Trac configuration is done by editing the '''`trac.ini`''' config file, located in `<projectenv>/conf/trac.ini`. Changes to the configuration are usually reflected immediately, though changes to the `[components]` or `[logging]` sections will require restarting the web server. You may also need to restart the web server after creating a global configuration file when none was previously present. |
| 9 | |
| 10 | The `trac.ini` configuration file and its parent directory should be writable by the web server, as Trac currently relies on the possibility to trigger a complete environment reload to flush its caches. |
| 11 | |
| 12 | == Global Configuration == |
| 13 | |
| 14 | In versions prior to 0.11, the global configuration was by default located in `$prefix/share/trac/conf/trac.ini` or /etc/trac/trac.ini, depending on the distribution. If you're upgrading, you may want to specify that file to inherit from. Literally, when you're upgrading to 0.11, you have to add an `[inherit]` section to your project's `trac.ini` file. Additionally, you have to move your customized templates and common images from `$prefix/share/trac/...` to the new location. |
| 15 | |
| 16 | Global options will be merged with the environment-specific options, where local options override global options. The options file is specified as follows: |
| 17 | {{{ |
| 18 | [inherit] |
| 19 | file = /path/to/global/trac.ini |
| 20 | }}} |
| 21 | Multiple files can be specified using a comma-separated list. |
| 22 | |
| 23 | Note that you can also specify a global option file when creating a new project, by adding the option `--inherit=/path/to/global/trac.ini` to [TracAdmin#initenv trac-admin]'s `initenv` command. If you do not do this but nevertheless intend to use a global option file with your new environment, you will have to go through the newly generated `conf/trac.ini` file and delete the entries that will otherwise override those set in the global file. |
| 24 | |
| 25 | There are two more entries in the [[#inherit-section| [inherit] ]] section, `templates_dir` for sharing global templates and `plugins_dir`, for sharing plugins. Those entries can themselves be specified in the shared configuration file, and in fact, configuration files can even be chained if you specify another `[inherit] file` there. |
| 26 | |
| 27 | Note that the templates found in the `templates/` directory of the TracEnvironment have precedence over those found in `[inherit] templates_dir`. In turn, the latter have precedence over the installed templates, so be careful about what you put there, notably if you override a default template be sure to refresh your modifications when you upgrade to a new version of Trac (the preferred way to perform TracInterfaceCustomization being still to write a custom plugin doing an appropriate `ITemplateStreamFilter` transformation). |
| 28 | |
| 29 | == Reference for settings |
| 30 | |
| 31 | This is a brief reference of available configuration options, and their default settings. |
| 32 | |
| 33 | [[TracIni]] |
| 34 | |
| 35 | ---- |
| 36 | See also: TracGuide, TracAdmin, TracEnvironment |