|  | 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 |