= 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. Then 1) 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 /srv/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 }}} 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)). 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. 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}}} to follow RedHat's standard for location of web contents, you don't need to do anything else. But if you want an alternative location such as {{{/srv}}}, 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 the lines: {{{ /srv/trac(/.*)? system_u:object_r:httpd_sys_content_t /srv/svn(/.*)? system_u:object_r:httpd_sys_content_t }}} to the file {{{/etc/selinux/targeted/contexts/files/filecontexts.local}}}. You may need to create this file if it is not already present.