= Trc Installation on Fedora Core 3 =
== Fedora Installation ==
'''NOTE''': This walkthru does '''NOT''' work properly IF you enable SELinux during the installation. I suppose it may work properly if you disable it after installation, but I didn't try it that way. I tried my first time around with an installation that had SELinux enabled and spent many hours trying to figure out what was going on. I admittedly am not an expert in kernel programming nor do I know much of anything about the intricate details related to SELinux. Therefore I have disabled the functionality altogether. If you can get trac to function properly with SELinux enabled PLEASE let me know (jbrandenburg at yahoo.com).
'''NOTE''': The firewall should be enabled for most individuals, I have disabled it because it's inside an already firewalled area and I just didn't want to mess with multiple firewalls. You only need to expose the webserver port and possibly ssh if you plan on doing remote administration.
1. Installed as a server (Fedora lets you choose from Desktop, Workstation, Server, ..) and also added development tools
* Firewall disabled
* SELinux disabled
== Configured yum via Dag ==
* I setup yum to download the updates from dag, per the instructions in [http://projects.edgewall.com/trac/wiki/TracOnFedoraCore TracOnFedoraCore]. For the lazy..
Edit the file '''/etc/yum.conf''' and add this to the end of the file.
{{{
[dag]
name=Dag RPM Repository for Fedora Core
baseurl=http://apt.sw.be/fedora/$releasever/en/$basearch/dag
}}}
* Downloaded additional gpg keys that were specified at [http://www.fedorafaq.org/#gpgsig]
{{{
yum install trac # (accept the additional files that are dependencies)
yum update # (optional)
}}}
== Trac Configuration ==
=== Subversion (SVN) Configuration ===
Determine where you want your subversion projects stored. I stored it in '''/var/svn/projectname'''
{{{
mkdir /var/svn
}}}
* NOTE: CREATE YOUR SVN REPOSITORY OR IMPORT IT HERE..
* I copied the subversion repository over to the server in '''/var/svn/projectname'''
=== Add Trac Project Environment ===
I ran the trac-admin script to create the trac project.
Determine where you will install your trac environment files. I opted to use '''/opt/tracdb/projectname'''
{{{
mkdir /opt/tracdb
trac-admin /opt/tracdb/projectname initenv # Fill out all the necessary information
}}}
=== Apache Configuration ===
I edited the '''/etc/httpd/conf/httpd.conf''' as instructed from the notes from trac-admin and from TracInstall
'''Add this to the end of /etc/httpd/conf/httpd.conf'''
{{{
Alias /trac/ /usr/share/trac/htdocs/
#or where you installed the trac htdocs
#You have to allow people to read the files in htdocs
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
# Trac need to know where the database is located
SetEnv TRAC_ENV "/path/to/projectenv"
# You need this to allow users to authenticate
# trac.htpasswd can be created with
# cmd 'htpasswd -c trac.htpasswd' (UNIX)
# do 'man htpasswd' to see all the options
AuthType Basic
AuthName "trac"
AuthUserFile /somewhere/trac.htpasswd
Require valid-user
}}}
* I changed ScriptAlias from
* CAUTION: If you intend to use this server for hosting other websites, then you may want to reconsider this change (There are other alternatives that you can find)
{{{
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
}}}
* to
{{{
ScriptAlias /cgi-bin/ "/usr/share/trac/cgi-bin/"
}}}
* For pretty URL’s (ie using http://trac.company.com instead of http://trac.company.com/cgi-bin/trac.cgi)
{{{
RewriteEngine On
RewriteRule ^/$ /cgi-bin/trac.cgi [R]
}}}
=== Assign file permissions ===
I assigned the rights
{{{
chown apache:apache /opt/projectname -R
chown apache:apache /var/svn/projectname -R
}}}
=== Add Users ===
{{{
cd /etc/httpd/conf
htpasswd –b trac.htpasswd username password
}}}
=== Restart Apache ===
{{{
service httpd restart
}}}
== Login to trac via your browser: ==
point your browser to ![http://servername/cgi-bin/trac.cgi]
If all went well then this should be your first step into your Trac system.