|  | 1 | = The Trac Configuration File | 
          
            |  | 2 |  | 
          
            |  | 3 | [[TracGuideToc]] | 
          
            |  | 4 | [[PageOutline(2-5,Contents,pullout)]] | 
          
            |  | 5 |  | 
          
            |  | 6 | Trac is configured through the **`trac.ini`** file, located in the `<projectenv>/conf` directory. The `trac.ini` configuration file and its parent directory should be writable by the web server. | 
          
            |  | 7 |  | 
          
            |  | 8 | Trac monitors the timestamp of the file to trigger an environment reload when the timestamp changes. Most changes to the configuration will be 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 [#GlobalConfiguration global configuration] file when none was previously present. | 
          
            |  | 9 |  | 
          
            |  | 10 | == Global Configuration | 
          
            |  | 11 |  | 
          
            |  | 12 | Configuration can be shared among environments using one or more global configuration files. Options in the global configuration will be merged with the environment-specific options, with local options overriding global options. The global configuration file is specified as follows: | 
          
            |  | 13 | {{{#!ini | 
          
            |  | 14 | [inherit] | 
          
            |  | 15 | file = /path/to/global/trac.ini | 
          
            |  | 16 | }}} | 
          
            |  | 17 | Multiple files can be specified using a comma-separated list. Non-absolute paths are relative to the Environment `conf` directory. | 
          
            |  | 18 |  | 
          
            |  | 19 | 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 specify `--inherit` 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 in the global file. | 
          
            |  | 20 |  | 
          
            |  | 21 | There are three more options in the [#inherit-section "[inherit]"] section, [#inherit-templates_dir-option templates_dir] for sharing global templates, [#inherit-htdocs_dir-option htdocs_dir] for sharing global htdocs and [TracIni#inherit-plugins_dir-option plugins_dir], for sharing plugins. Those options can be specified in the shared configuration file, and in fact, configuration files can even be chained if you specify another `[inherit] file` there. | 
          
            |  | 22 |  | 
          
            |  | 23 | 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, refresh your modifications when you upgrade to a new version of Trac. The preferred way to perform TracInterfaceCustomization is to write a custom plugin doing an appropriate `ITemplateStreamFilter` transformation. | 
          
            |  | 24 |  | 
          
            |  | 25 | == Reference for settings | 
          
            |  | 26 |  | 
          
            |  | 27 | This is a reference of available configuration options, and their default settings. | 
          
            |  | 28 |  | 
          
            |  | 29 | Documentation improvements should be discussed on the [trac:MailingList#Trac-dev trac-dev mailing list] or described in a [trac:NewTicket ticket]. Even better, [trac:TracDev/SubmittingPatches submit a patch] against the docstrings in the code. | 
          
            |  | 30 |  | 
          
            |  | 31 | [[TracIni]] | 
          
            |  | 32 |  | 
          
            |  | 33 | == Configure Error Reporting | 
          
            |  | 34 |  | 
          
            |  | 35 | The error reporting page has a //Create// button for reporting | 
          
            |  | 36 | issues. The site to which issues are reported depends on the | 
          
            |  | 37 | configuration of the Trac site and the user’s permissions. | 
          
            |  | 38 |  | 
          
            |  | 39 | If the user doesn’t possess TRAC_ADMIN, the site to which a user is directed to create a ticket is determined by the [[#project-admin_trac_url-option|"[trac] admin_trac_url"]] setting: | 
          
            |  | 40 |  | 
          
            |  | 41 | * If empty, there will be no //Create// button. | 
          
            |  | 42 | * If set to the default value (`.`), the ticket will be | 
          
            |  | 43 | created on the site which the error occurred. | 
          
            |  | 44 | * Otherwise the ticket will be created at the site pointed | 
          
            |  | 45 | to by `admin_trac_url`. | 
          
            |  | 46 |  | 
          
            |  | 47 | If [[#project-admin-option|"[project] admin"]] is not empty, the administrator's email address will be rendered on the error page. | 
          
            |  | 48 |  | 
          
            |  | 49 | If the user possesses TRAC_ADMIN, the //Create// button will direct the user to report the issue on trac.edgewall.org. If the error was generated in a plugin, the error will be reported to the project URL provided that the plugin author has included the project URL in the plugin installation data. The user possessing TRAC_ADMIN also sees a traceback and system information on the error page. | 
          
            |  | 50 |  | 
          
            |  | 51 | ---- | 
          
            |  | 52 | See also: TracAdmin, TracEnvironment |