Edgewall Software

Version 1 (modified by nkadel@…, 17 years ago) ( diff )

Add installation notes for RHEL.

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 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<Location>) that
# you want to serve the Trac site
<Location /trac>
   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
</Location>
<Location /trac/login>
   AuthType Basic
   AuthName "alexandria"
   AuthUserFile /var/www/trac/foobar/conf/trac.htpasswd
   Require valid-user
</Location>

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

Note: See TracWiki for help on using the wiki.