= Trac on Ubuntu = These instructions were written for a '''fresh install''' of Ubuntu. This documentation suggests performing [http://www.ubuntulinux.org/support/documentation/faq/installation-custom/view?searchterm=server%20install custom install] when installing Ubuntu to create a base system without an X server or other graphical niceties. These instructions, however, should work reasonably well if you already have Ubuntu installed or you have performed a full install. '''Warty users:''' Ubuntu needs versions of {{{python-sqlite}}} and {{{clearsilver}}} that aren't available on Warty (see #468 & #1104). You will need to [http://ubuntuguide.org/4.10/index.html#upgradewartytohoary upgrade to the Hoary release] or later. === Installation === === 1. Install Software Packages === To install Trac on your system, install the {{{trac}}} and {{{libapache2-svn}}} packages: {{{ sudo apt-get install trac libapache2-svn }}} === 2. Create the Trac Envioronments Directory === You'll need a directory for Trac's envioronments to live that should be writable by the default Apache user: {{{ sudo mkdir /var/trac sudo chown www-data:www-data /var/trac }}} === 3. Setup Apache2 === Next, create a new Apache-2 virtualhost by saving the following as {{{/etc/apache2/sites-available/trac}}} : {{{ ServerAdmin webmaster@localhost ServerName trac.example.com DocumentRoot /usr/share/trac/cgi-bin/ Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny allow from all Alias /trac "/usr/share/trac/htdocs" SetEnv TRAC_ENV "/var/trac" DirectoryIndex trac.cgi ErrorLog /var/log/apache2/error.trac.log CustomLog /var/log/apache2/access.trac.log combined }}} You also need to uncomment the {{{AddHandler}}} line in {{{/etc/apache2/apache2.conf}}} so that the Trac CGI program will be executed: {{{ # To use CGI scripts outside /cgi-bin/: # AddHandler cgi-script .cgi }}} Now, disable the default virtualhost, enable the Trac virtualhost, and restart Apache2: {{{ sudo a2ensite trac sudo a2dissite default sudo /etc/init.d/apache2 restart }}} This last step would differ if you were already serving other virtualhosts. === 4. Creating Environments === I installed my Subversion repository at {{{/var/svn/YourProjectNameHere}}}. So I did a quick starting config of subversion with the following commands: {{{ sudo mkdir /var/svn sudo mkdir /var/svn/YourProjectNameHere sudo mkdir /tmp/YourProjectNameHere sudo mkdir /tmp/YourProjectNameHere/branches sudo mkdir /tmp/YourProjectNameHere/tags sudo mkdir /tmp/YourProjectNameHere/trunk sudo svnadmin create /var/svn/YourProjectNameHere sudo svn import /tmp/YourProjectNameHere file:///var/svn/YourProjectNameHere -m "initial import" sudo rm -rf /tmp/YourProjectNameHere }}} Some permissions changes and an apache restart are now needed: {{{ sudo chown -R www-data /var/svn/YourProjectNameHere sudo chown -R www-data /usr/share/trac sudo apache2 -k restart }}} Test by web-browsing to {{{http://servername/svn/YourProjectNameHere}}} If you see a simple web page which says '''Revision 1: /''' and lists ''branches'', ''tags'', and ''trunk'', your Subversion install is up and running! You will also need to modify the settings in {{{/etc/apache2/mods-available/dav_svn.conf}}} {{{ # Uncomment this to enable the repository, DAV svn # Set this to the path to your repository SVNParentPath /var/svn }}} Now let's finish the Trac install (but don't go on to Trac install until you have the above working properly). I put my trac environment at {{{/var/trac/YourProjectNameHere}}}. Of course you could use any other path or name - something a little more descriptive of ''your'' project would probably be a good idea. First I ran these commands: {{{ sudo mkdir /var/trac sudo trac-admin /var/trac/YourProjectNameHere initenv sudo chown -R www-data /var/trac/YourProjectNameHere }}} The "trac-admin" command shown above prompted me to enter: * the project name ({{{YourProjectNameHere}}}) * the path to svn repository ({{{/var/svn/YourProjectNameHere}}}) * the path to the Trac templates directory ({{{/usr/share/trac/templates}}}) ... then it prints out a bunch of stuff. If there are no errors you should now be able to surf to your Trac site at '''!http://servername/trac.cgi''' At the time I did my install, there was one glitch in the Ubuntu Universe Trac installer. It doesn't install the neo_cgi.so file needed in the python2.4 directory space. So when I surfed to my Trac site, I got the error '''!ImportError: No module named neo_cgi'''. I was able to fix this by symlinking the python2.3 version like so: {{{ sudo ln -s /usr/lib/python2.3/site-packages/neo_cgi.so /usr/lib/python2.4/site-packages/neo_cgi.so }}} ''Voila! Your Trac system & website should be up and running.'' == Comments & Suggestions == * Celebrate with beer. === mod_python Install === The above instructions are for a CGI-based install. For a simple mod_python install, within your existing Virtual Host: {{{ apt-get install libapache2-mod-python }}} Follow steps 1 & 2 above. For step 3, here's simple config (this would go inside your existing Virtual Host definition). You also shouldn't have to do any of the other stuff in step 3. {{{ SetHandler mod_python PythonHandler trac.ModPythonHandler # For Breezy++ use: PythonHandler trac.web.modpython_frontend PythonOption TracEnv /var/trac PythonOption TracUriRoot "/trac" }}} For more complex mod_python configs, see TracModPython Now, follow the Subversion setup instructions in Step 4 (just the Subversion setup - you don't have to do the rest). Next, {{{ sudo chown -R www-data /var/svn/YourProjectNameHere sudo /etc/init.d/apache2 restart }}} Then set up the Trac environment. {{{ sudo mkdir /var/trac sudo trac-admin /var/trac/YourProjectNameHere initenv sudo chown -R www-data /var/trac/YourProjectNameHere }}} Now, you should be able to access Trac at http://youserver.name/trac == Problems == Ubuntu universe and Hoary Backports only have Trac 0.8 available at this writing. The Edgewall 0.8.4 debian packages specifically require the python2.3-subversion package, which makes installing on Hoary quite painful, as only python2.4-subversion is available without going directly to old debian repos. :( Are '''2.3''' Python packages really strictly required? Current Ubuntu 0.8 package does seem to work fine without the neo_cgi problem mentioned above, however. '''Solution:''' {{{trac 0.8.4-1ubuntu1}}} is currently in Ubuntu Breezy. As the dependencies didn’t change and are coverable by the packages in Hoary, one can simply grab the package from [http://archive.ubuntu.com/ubuntu/pool/universe/t/trac/ the archive] and (provided all of the dependencies are fulfilled) simply {{{ sudo dpkg -i trac_0.8.4-1ubuntu1_all.deb }}} === Breezy === The above instructions didn't quite work for me on a Breezy server. The virtualhost section includes: {{{ SetEnv TRAC_ENV "/var/trac" }}} That didn't work until I changed /var/trac to /var/trac/YourProjectName === Breezy === I had to add a section to the virtual host to make the SVN repository work correctly: {{{ DAV svn SVNParentPath /var/svn }}} === Breezy === If you are going to want to login, you're going to need authentication. I added the following to my virtual host file to get this to work: {{{ AuthType Basic AuthName "Trac" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user }}} This will share the password with your subversion install. You'll also need to grant each user rights using trac-admin. Finally don't forget to restart Apache after you make changes to the virtual host file.