= Trac on RHEL = Installing Trac On RHEL 4 (and higher), is easy with Yum. 1) If you haven't already installed Yum and added access to the RPMforge repository, look at [http://rpm.pbone.net] and install the rpmforge-release package for your particular version of RHEL. 2) Verify you have configured Yum to use the rpmforge repository. An RPM to configure this is easily accessible from [http://rpm.pbone.net] Then run the following command in a terminal window: {{{ $ sudo yum install trac }}} Yum will take care of all dependencies on which the Trac package depends (including the python-clearsilver package) and will fetch and install them for you automatically. 2) Create a new project environment. An environment is basically a directory that contains a human-readable configuration file and various other files and directories. Create a subversion repository if you don't already have one, for example in ''/srv/svn'': {{{ $ sudo mkdir -p /var/www/svn/foobar $ sudo svnadmin create --fs-type fsfs /var/www/svn/foobar }}} Next you need to decide where to store your trac project and create the directory, for example in the new directory /srv/trac: {{{ $ sudo mkdir -p /var/www/trac }}} Then create a new environment using [wiki:TracAdmin trac-admin], as in this example for project ''foobar'' {{{ $ sudo trac-admin /var/www/trac/foobar initenv }}} Now make it owned by apache: {{{ $ sudo chown -R apache /var/www/trac/foobar $ sudo chown -R apache /var/www/svn/foobar }}} 3) Next, you need to edit the file ''/etc/httpd/conf.d/trac.conf'' to point to your new project environment, as in this example (using mod_python): {{{ # The Location is the part after the host (http://example.com) that # you want to serve the Trac site SetHandler mod_python PythonHandler trac.web.modpython_frontend # "/var/www/svn/foobar" is the folder you gave to trac-admin initenv earlier PythonOption TracEnv /var/www/trac/foobar # "/trac" is the same as the Location above PythonOption TracUriRoot /trac # "/tmp" should be some writable temporary directory SetEnv PYTHON_EGG_CACHE /tmp # "trac" can be any string, but must be the same for all # Trac instances on the same Apache install PythonInterpreter trac AuthType Basic AuthName "alexandria" AuthUserFile /var/www/trac/foobar/conf/trac.htpasswd Require valid-user }}} = Apache Authentication = The example above assumes you have a trac project environment setup in ''/var/www/trac/foobar/'' directory, described in step 2 and an htpasswd file at /var/www/trac/foobar/conf/trac.htpasswd for authentication purposes (see also wiki:TracModPython (too generic)). There are numerous other ways to authenticate users, but if you care about security ''do not'' use the same authentication for comand line Subversion clients as you do for Trac. This is because Subversion keeps its passwords for command lines locally, in your home directory, in clear text. = Activating the web server You will need to tell Apache to reload configuration after editing trac.conf: {{{ $ sudo service httpd reload }}} Verify your Trac installation by pointing your browser at the correct URL for your Trac server (e.g. http://localhost/trac). Notes on the RHEL package: * trac.cgi and trac.fcgi are installed in /var/www/cgi-bin/ (actually, //usr/share/trac/cgi-bin/trac.fcgi for RHEL). * apache webserver config file is installed in /etc/httpd/conf.d/trac.conf If you happen to come across any packaging issues, feature requests or problems on RHEL, you can submit a bugzilla bug for the Trac package at [https://bugzilla.redhat.com/bugzilla/easy_enter_bug.cgi]. Be sure to check out the generic installation instructions in the [wiki:TracGuide TracGuide] == SELinux == RHEL now ships with SELinux enabled by default. This means you need to make the Trac and Subversion directory accessible to the webserver. If you keep these contents under {{{/var/www/trac}}} and {{{/var/www/svn}}}, you don't need to do anything else. If you want an alternative location such as {{{/srv}}} or {{{opt}}}, and many installers have their own ideas about where these should go, follow thiese guidelines and read the notes at [http://fedora.redhat.com/docs/selinux-apache-fc3/] for details. {{{ $ sudo chcon -R -t httpd_sys_content_t /srv/trac $ sudo chcon -R -t httpd_sys_content_t /srv/svn }}} If you put these under {{{/srv/www/trac}}} and {{{/srv/www/svn}}} instead, the {{{restorecon}}} command will know that these attributes should be preserved. Alternatively, you can teach {{{restorecon}}} about these two directories by adding these lines to the file {{{/etc/selinux/targeted/contexts/files/filecontexts.local}}} {{{ /srv/trac(/.*)? system_u:object_r:httpd_sys_content_t /srv/svn(/.*)? system_u:object_r:httpd_sys_content_t }}} You may need to create this file if it is not already present: it's not present by default.