Tag/tag.png

Style Cleanup Required
This article does not follow the style standards in the Wiki Guide. More info...

Tag/tag.png

Needs Expansion
This article is incomplete, and needs to be expanded. More info...

There are "better" instructions at http://trac.edgewall.org/wiki/TracOnUbuntu

Info <!> Yeah but the "better" instructions there say These instructions are bad, do not follow them. Suggestions?

Info <!> Suggestion: The Edgewall page uses the upstream-preferred installation mechanism (i.e. running easy-setup). This page should discuss the Ubuntu-preferred method, using Ubuntu-provided packages.

Localhost setup

Steps to get Trac working on your computer from commandline

Info <!> I ommited the full path to the dir where i installed my Trac instance, so instead of reading the whole path, you'll only see path/to/MhzProjects/

  • Decide where you'd like to run SVN and Trac. In my case, I decided to use a dir called MhzSvn and one called MhzTrac, both under MhzProjects/. So cd to that dir

$ cd path/to/MhzProjects/
  • Install Trac and say Y to install everything needed (apache, svn and some python stuff)

$ sudo apt-get install trac
Password:
  • Create a dir for SVN to work with Trac, then ls to see what SVN just created for you

$ svnadmin create MhzSvn

$ ls MhzSvn/
conf  dav  db  format  hooks  locks  README.txt
  • Let Trac create everything for you. I decided to call my trac MhzStuff

/path/to/MhzProjects $ trac-admin MhzTrac initenv
Creating a new Trac environment at path/to/MhzProjects/MhzTrac

Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]> MhzStuff

 Please specify the absolute path to the project Subversion repository.
 Repository must be local, and trac-admin requires read+write
 permission to initialize the Trac database.

Path to repository [/var/svn/test]> path/to/MhzProjects/MhzSvn/

 Please enter location of Trac page templates.
 Default is the location of the site-wide templates installed with Trac.

Templates directory [/usr/share/trac/templates]>
Creating and Initializing Project
 Inserting default data
 Configuring Project
  trac.repository_dir
  trac.templates_dir
  project.name
 Installing wiki pages
 /usr/share/trac/wiki-default/TracImport => TracImport
 /usr/share/trac/wiki-default/TracRss => TracRss
 /usr/share/trac/wiki-default/TracMultipleProjects => TracMultipleProjects
 /usr/share/trac/wiki-default/TracBackup => TracBackup
 /usr/share/trac/wiki-default/TracTimeline => TracTimeline
 /usr/share/trac/wiki-default/TracTickets => TracTickets
 /usr/share/trac/wiki-default/TracInstall => TracInstall
 /usr/share/trac/wiki-default/WikiRestructuredText => WikiRestructuredText
 /usr/share/trac/wiki-default/WikiPageNames => WikiPageNames
 /usr/share/trac/wiki-default/TracSyntaxColoring => TracSyntaxColoring
 /usr/share/trac/wiki-default/TracPermissions => TracPermissions
 /usr/share/trac/wiki-default/TracSupport => TracSupport
 /usr/share/trac/wiki-default/WikiHtml => WikiHtml
  /usr/share/trac/wiki-default/TracModPython => TracModPython
 /usr/share/trac/wiki-default/WikiFormatting => WikiFormatting
 /usr/share/trac/wiki-default/TracBrowser => TracBrowser
 /usr/share/trac/wiki-default/TracTicketsCustomFields => TracTicketsCustomFields
 /usr/share/trac/wiki-default/TracNotification => TracNotification
 /usr/share/trac/wiki-default/TracUnicode => TracUnicode
 /usr/share/trac/wiki-default/TracAccessibility => TracAccessibility
 /usr/share/trac/wiki-default/TracInstallPlatforms => TracInstallPlatforms
 /usr/share/trac/wiki-default/TracReports => TracReports
 /usr/share/trac/wiki-default/TracEnvironment => TracEnvironment
 /usr/share/trac/wiki-default/WikiMacros => WikiMacros
 /usr/share/trac/wiki-default/CamelCase => CamelCase
 /usr/share/trac/wiki-default/WikiProcessors => WikiProcessors
 /usr/share/trac/wiki-default/TracSearch => TracSearch
 /usr/share/trac/wiki-default/TracQuery => TracQuery
 /usr/share/trac/wiki-default/WikiStart => WikiStart
 /usr/share/trac/wiki-default/TracLogging => TracLogging
 /usr/share/trac/wiki-default/SandBox => SandBox
 /usr/share/trac/wiki-default/WikiRestructuredTextLinks => WikiRestructuredTextLinks
 /usr/share/trac/wiki-default/TracLinks => TracLinks
 /usr/share/trac/wiki-default/TracRoadmap => TracRoadmap
 /usr/share/trac/wiki-default/TracStandalone => TracStandalone
 /usr/share/trac/wiki-default/TracUpgrade => TracUpgrade
 /usr/share/trac/wiki-default/RecentChanges => RecentChanges
 /usr/share/trac/wiki-default/TracAdmin => TracAdmin
 /usr/share/trac/wiki-default/TracGuide => TracGuide
 /usr/share/trac/wiki-default/TracChangeset => TracChangeset
 /usr/share/trac/wiki-default/TitleIndex => TitleIndex
 /usr/share/trac/wiki-default/WikiNewPage => WikiNewPage
 /usr/share/trac/wiki-default/TracWiki => TracWiki
 Indexing repository
---------------------------------------------------------------------

Project database for 'MhzStuff' created.

 Customize settings for your project using the command:

   trac-admin /path/to/MhzProjects/MhzTrac

 Don't forget, you also need to copy (or symlink) "trac/cgi-bin/trac.cgi"
 to you web server's /cgi-bin/ directory, and then configure the server.

 If you're using Apache, this config example snippet might be helpful:

    Alias /trac "/wherever/you/installed/trac/htdocs/"
    <Location "/cgi-bin/trac.cgi">
        SetEnv TRAC_ENV "path/to/Work/MhzProjects/MhzTrac"
    </Location>

    # You need something like this to authenticate users
    <Location "/cgi-bin/trac.cgi/login">
        AuthType Basic
        AuthName "MhzStuff"
        AuthUserFile /somewhere/trac.htpasswd
        Require valid-user
    </Location>

 The latest documentation can also always be found on the project website:
 http://projects.edgewall.com/trac/

Congratulations!

$
  • Let's see what Trac created for us

$ ls -lh MhzTrac
total 32K
drwxr-xr-x  2 mhz rojo 4.0K 2006-01-04 15:58 attachments
drwxr-xr-x  2 mhz rojo 4.0K 2006-01-04 15:58 conf
drwxr-xr-x  2 mhz rojo 4.0K 2006-01-04 15:58 db
drwxr-xr-x  2 mhz rojo 4.0K 2006-01-04 15:58 log
-rw-r--r--  1 mhz rojo   94 2006-01-04 15:58 README
drwxr-xr-x  2 mhz rojo 4.0K 2006-01-04 15:58 templates
-rw-r--r--  1 mhz rojo   27 2006-01-04 15:58 VERSION
drwxr-xr-x  2 mhz rojo 4.0K 2006-01-04 15:58 wiki-macros
  • Edit apache2.conf

$ sudo nano /etc/apache2/apache2.conf
Password:
  • Add these lines at the end of the file

Alias /trac "/usr/share/trac/htdocs"
    <Location "/cgi-bin/trac.cgi">
        SetEnv TRAC_ENV "path/to/MhzProjects/MhzTrac"
    </Location>
  • Re-start apache

sudo /etc/init.d/apache2 restart
  • Start Trac

tracd --port 8000 path/to/MhzProjects/MhzTrac/
  • Open your browser and visit http://localhost:8000

There is a mistake in this configuration

The configuration of apache2 as in the example above implies that you want to run trac via the cgi script; rather than with tracd.  tracd is a substitute for apache.  If you attempt to run tracd after starting apache2, you might receive : "socket.error: (98, 'Address already in use')"  Will someone who is more familiar please verify this, and correct these instructions.  -cullen

Server setup

Install subversion

$ sudo apt-get install subversion

Install apache with subversion module:

$ sudo apt-get install apache2 libapache2-svn
$ sudo /etc/init.d/apache2 restart

Edit the dav stuff:

$ sudo gedit /etc/apache2/mods-available/dav_svn.conf

<Location /svn> 
  DAV svn 
  SVNPath /var/lib/svn 

  AuthType Basic 
  AuthName "Subversion Repository" 
  AuthUserFile /etc/apache2/dav_svn.passwd 

  Require valid-user 
  #AuthzSVNAccessFile /etc/apache2/svn-acl 
</Location>

Place the files from subversion:

$ /var/lib/svn 
$ sudo chown -R www-data svn/

Creating the passwordfile:

$ sudo htpasswd -c /etc/apache2/dav_svn.passwd first-svn-user

Adding more users with:

$ sudo htpasswd /etc/apache2/dav_svn.passwd more-user

Restart the webserver:

$ sudo /etc/init.d/apache2 restart

Subversion can now be found at: http://localhost/svn/

Trac enviroment

$ sudo apt-get install trac
Password:

Create the containing directory with it's files (our trac project is called "horus")

$ sudo mkdir /var/lib/trac 
$ sudo chown -R www-data /var/lib/trac/
$ cd /var/lib/trac/
$ sudo trac-admin horus initenv

This will generate the following output:

Creating a new Trac environment at /var/lib/trac/horus



Trac will first ask a few questions about your environment 

in order to initialize and prepare the project database.



 Please enter the name of your project.

 This name will be used in page titles and descriptions.



Project Name [My Project]> Horus

 

 Please specify the connection string for the database to use.

 By default, a local SQLite database is created in the environment

 directory. It is also possible to use an already existing

 PostgreSQL database (check the Trac documentation for the exact

 connection string syntax).



Database connection string [sqlite:db/trac.db]> 

 

 Please specify the type of version control system,

 By default, it will be svn.



 If you don't want to use Trac with version control integration,

 choose the default here and don't specify a repository directory.

 in the next question.



Repository type [svn]> 



 Please specify the absolute path to the version control

 repository, or leave it blank to use Trac without a repository.

 You can also set the repository location later.



Path to repository [/path/to/repos]> /var/lib/svn



Creating and Initializing Project

---------------------------------------------------------------------

Project environment for 'Horus' created.



You may now configure the environment by editing the file:



  /var/lib/trac/horus/conf/trac.ini



If you'd like to take this new project environment for a test drive,

try running the Trac standalone web server `tracd`:



  tracd --port 8000 /var/lib/trac/horus



Then point your browser to http://localhost:8000/horus.

There you can also browse the documentation for your installed

version of Trac, including information on further setup (such as

deploying Trac to a real web server).



The latest documentation can also always be found on the project

website:



  http://trac.edgewall.org/



Congratulations!

Change the owner and do a testrun with the webuser (test at http://localhost:8000/horus):

$ sudo chown -R www-data horus
$ sudo -u www-data tracd --port 8000 /var/lib/trac/horus

^C$

Trac in Apache 2

Create the location

$ sudo gedit /etc/apache2/sites-available/trac

<Location /trac> #set up Trac handling
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnvParentDir /var/lib/trac
        PythonOption TracUriRoot /trac

        # Use the SVN password file.
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
        Require valid-user  
</Location>

Install the python module and make the site available

$ sudo apt-get install libapache2-mod-python
$ sudo a2ensite trac
$ sudo apache2ctl restart                       

location can be reached at: http://localhost/trac/

UbuntuTracHowto (last edited 2010-11-02 17:37:02 by dark-hero)