| 1 | = Trac Installation Guide = |
| 2 | [[TracGuideToc]] |
| 3 | |
| 4 | The Trac web-based project management tool is implemented as a CGI- or standalone program. Trac is written in the [http://www.python.org/ Python] programming language |
| 5 | and uses the [http://www.sqlite.org/ SQLite] embedded database for persistant storage. For HTML rendering, Trac uses the [http://www.clearsilver.net/ Clearsilver] template system. |
| 6 | |
| 7 | |
| 8 | == Requirements == |
| 9 | |
| 10 | To install Trac, the following software packages must be installed: |
| 11 | |
| 12 | * [http://www.python.org/ Python], version >= 2.1 (>=2.3 recommended). |
| 13 | * Please keep in mind, that for RPM-based systems you will also need python-devel and python-xml packages. |
| 14 | * [http://subversion.tigris.org/ Subversion], version >= 1.0. (>=1.1 recommended) |
| 15 | * [http://svnbook.red-bean.com/svnbook-1.1/ch08s02.html#svn-ch-8-sect-2.3 Subversion Python bindings] (Caveat: Trac uses the [http://www.swig.org/ SWIG] bindings included in the Subversion distribution, '''not''' the [http://pysvn.tigris.org/ PySVN] package!) |
| 16 | * [http://www.sqlite.org/ SQLite], version 2.8.x or 3.0.x |
| 17 | * [http://pysqlite.sf.net/ PySQLite], version >= 0.5 but < 1.1.0 (for SQLite 2.8.x), version >= 1.1.1 (for SQLite 3.0.x) |
| 18 | * [http://clearsilver.net/ Clearsilver], version >= 0.9.3 |
| 19 | * [http://docutils.sourceforge.net/ docutils], version >= 0.3.3 (??) |
| 20 | * A CGI-capable web server (tested on [http://httpd.apache.org/ Apache] ) |
| 21 | |
| 22 | === Optional Packages === |
| 23 | |
| 24 | * [http://www.modpython.org/ mod_python] (see TracModPython) |
| 25 | |
| 26 | == Installing Trac == |
| 27 | Like most Python programs, install the Trac python modules by running the following command at the top of the source directory: |
| 28 | {{{ |
| 29 | $ python ./setup.py install |
| 30 | }}} |
| 31 | |
| 32 | This will byte-compile the python source code and install it in the {{{site-packages}}} directory |
| 33 | of your python installation. The directories {{{cgi-bin}}}, {{{templates}}}, {{{htdocs}}} and {{{wiki-default}}} are all copied to $prefix/share/trac/ . |
| 34 | |
| 35 | The script will also install the [wiki:TracAdmin trac-admin] command-line tool, used to create and maintain [wiki:TracEnvironment project environments]. |
| 36 | |
| 37 | The [wiki:TracAdmin trac-admin] program is the ''control center'' for Trac. |
| 38 | |
| 39 | '''Note:''' you'll need root permissions or equivalent for this step. |
| 40 | |
| 41 | For more information on installing Trac on specific platforms, see the [http://projects.edgewall.com/trac/wiki/TracInstallPlatforms TracInstallPlatforms] page (on the main project web site). |
| 42 | |
| 43 | === Advanced Users === |
| 44 | To install Trac in a custom location, and view other advanced install options, run: |
| 45 | {{{ |
| 46 | $ python ./setup.py --help |
| 47 | }}} |
| 48 | |
| 49 | == Creating a Project Environment == |
| 50 | |
| 51 | TracEnvironment is the backend storage format where Trac stores |
| 52 | information like wiki pages, tickets, reports, settings, etc. |
| 53 | An environment consist of a directory containing an SQLite database, |
| 54 | human-readable configuration file, log-files and attachments. |
| 55 | |
| 56 | A new Trac environment is created using [wiki:TracAdmin trac-admin], like: |
| 57 | |
| 58 | {{{ |
| 59 | $ trac-admin /path/to/projectenv initenv |
| 60 | }}} |
| 61 | |
| 62 | [wiki:TracAdmin trac-admin] will ask you where your subversion repository is located and |
| 63 | where it can find the trac templates directory (the default value should work for a typical install). |
| 64 | |
| 65 | '''Note:''' The web server user will require file system write permission to the environment |
| 66 | directory and all the files inside. '''Remember to set the appropriate permissions.'' |
| 67 | |
| 68 | The same applies for the subversion repository files (unless using the [http://svn.collab.net/repos/svn/trunk/notes/fsfs FSFS Subversion backend], something we highly recommend. |
| 69 | |
| 70 | == Configuring Apache == |
| 71 | |
| 72 | Make "{{{trac/cgi-bin/trac.cgi}}}" accessible to your web server at {{{/cgi-bin/}}}, either by copying/symlinking or use the "{{{trac/cgi-bin/}}}" directory directly. |
| 73 | |
| 74 | Edit the apache config and add this snippet, filenames edited to match your installation: |
| 75 | |
| 76 | {{{ |
| 77 | Alias /trac/ "/usr/share/trac/htdocs/" #or where you installed the trac htdocs |
| 78 | #You have to allow people to read the files in htdocs |
| 79 | <Directory "/usr/share/trac/htdocs"> |
| 80 | Options Indexes MultiViews |
| 81 | AllowOverride None |
| 82 | Order allow,deny |
| 83 | Allow from all |
| 84 | </Directory> |
| 85 | |
| 86 | |
| 87 | # Trac need to know where the database is located |
| 88 | <Location "/cgi-bin/trac.cgi"> |
| 89 | SetEnv TRAC_ENV "/path/to/projectenv" |
| 90 | </Location> |
| 91 | |
| 92 | # You need this to allow users to authenticate |
| 93 | # trac.htpasswd can be created with |
| 94 | # cmd 'htpasswd -c trac.htpasswd' (UNIX) |
| 95 | # do 'man htpasswd' to see all the options |
| 96 | <Location "/cgi-bin/trac.cgi/login"> |
| 97 | AuthType Basic |
| 98 | AuthName "trac" |
| 99 | AuthUserFile /somewhere/trac.htpasswd |
| 100 | Require valid-user |
| 101 | </Location> |
| 102 | }}} |
| 103 | |
| 104 | '''Note:''' If Apache complains about the Set''''''Env line make sure you have the Load''''''Module for mod_env uncommented (Apache 1.3). |
| 105 | |
| 106 | '''Note:''' When creating a new environment, {{{trac-admin}}} will print a config snippet customized for your project. |
| 107 | |
| 108 | '''Note:''' If you are using [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature see [http://projects.edgewall.com/trac/wiki/ApacheSuexec ApacheSuexec] (on the project web site). |
| 109 | |
| 110 | == Using Trac == |
| 111 | |
| 112 | '''Congratulations!''' You should now have a running Trac installation at: |
| 113 | |
| 114 | http://<yourhostname>/cgi-bin/trac.cgi |
| 115 | |
| 116 | You should be able to browse your subversion repository, create tickets, |
| 117 | view the timeline and use all the features of Trac. |
| 118 | |
| 119 | Keep in mind that anonymous users (not logged in) can only access a restricted subset of all Trac features by default. |
| 120 | |
| 121 | '''Note:''' If you don't want long, and relatively ugly, URLs, you can prettify them by changing your Apache config. See [http://projects.edgewall.com/trac/wiki/TracPrettyUrls TracPrettyUrls] (on the project website). |
| 122 | |
| 123 | Please continue to TracPermissions to learn how to grant additional privileges to authenticated users. |
| 124 | |
| 125 | For user documentation, see TracGuide. |
| 126 | |
| 127 | ''Enjoy!'' |
| 128 | |
| 129 | [http://projects.edgewall.com/trac/wiki/TracTeam The Trac Team] |
| 130 | |
| 131 | ---- |
| 132 | See also: TracGuide, TracUpgrade, TracPermissions, TracInstallPlatforms, TracModPython |