Installing SVN & Trac on a Plesk host

Process I followed to install subversion and make it available via mod dav svn on a plesk host.

Some notes incase I need to do it again:

  • create new domain in plesk to host my svn + trac install. chose php safe mode.
  • setup ftp
install svn
  • as root on the server install subversion and subversion-tools (using debian: apt-get install subversion subversion-tools libapache2-svn)
  • as root create a new svn repo in the sites directory (ie: the one above httpdocs/)
    # cd /var/www/vhosts/mysite.com/
    # mkdir svn
    # svnadmin create svn/myproject
  • enable mod dav:
    # a2enmod dav 
    # a2enmod dav_svn
    # /etc/init.d/apache2 restart
  • time to edit the apache config for this site
    add the below to /var/www/vhosts/mysite.com/conf/vhost.conf
             <Location /svn>
                     DAV svn
                     SVNParentPath /var/www/vhosts/mysite.com/svn/
                     AuthType Basic
                     AuthName "SVN"
                     AuthUserFile /var/www/vhosts/mysite.com/svn.password
                     Require valid-user
             </Location>
  • Create the htpassword:
    # htpasswd -c /var/www/vhosts/mysite.com/svn.password username
  • Update plesk to install your vhost.conf file
    #  /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=mysite.com
  • Now you should be right with svn, visit mysite.com/svn, enter your username/password and you should see a list of your repositories.

install trac

  • download trac to server wget http://ftp.edgewall.com/pub/trac/Trac-0.11.tar.gz
  • tar zxvf Trac-0.11.tar.gz
    cd Trac-0.11
    less INSTALL << read it
  • apt-get install python python-genshi python-sqlite libapache2-mod-python python-setuptools
  • a2enmod mod_python
    /etc/init.d/apache2 restart
  • run the trac installer, tell it the path to your svn repo above
  • python ./setup.py install 
    trac-admin /var/www/vhost/mysite.com/trac/myproject initenv
  • chown www-data: /var/www/vhost/mysite.com/trac -R
  • vi conf/vhost.conf
    add these:
    <Location /trac/myproject>
    SetHandler mod_python
    PythonInterpreter main_interpreter
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv /var/www/vhosts/mysite.com/trac/myproject
    PythonOption TracUriRoot /trac/myproject
    </Location>
    <Location /trac/myproject/login>
    AuthType Basic
    AuthName "trac"
    AuthUserFile /var/www/vhosts/mysite.com/svn.password
    Require valid-user
    </Location>
  • apt-get install python-subversion
    /etc/init.d/apache2 force-reload
  • now hit mysite.com/trac/myproject and  you should see it! woot!

configure trac

  • as root: 
    # trac-admin /var/www/vhosts/mysite.com/trac/myproject permission add myusername TRAC_ADMIN
  • the above will give you a new "ADMIN" tab in the trac environment, so you can use the web based system to control settings instead of `trac-admin`

svn stuff

  • you need to import you code into svn initially, like this:
    # cd /path/to/my/code/
    # svn import -m "initial import" http://mysite.com/svn/my_repo/project_name
        enter username/password for svn and away it goes
  • after you have imported your code into svn, you have to "check out" a copy of the code again in order to work on it and have svn manage everything.
  • two ways to get code out of svn, "check out" and "export.
  • you use "check out" when you want to modify code and check it back in to svn.
  • you use "export" when you want to grab a copy of the code to for example deploy on a server
  • like this:
    # cd /path/to/where/i/want/to/edit/code
    # svn co http://mysite.com/svn/my_repo/project_name
  • code will be checked out into a folder called "project_name" in the current directory.
  • if you look in there you will see a bunch of .svn folders, they store all the svn repo details, dont change them :P
  • after you modify some code, type
    # svn commit
  • it will give you a list of all the changes you have made, and commit them back to the svn repo
  • you can then use trac to browse through the source code and the revision history
myproject
Comments
  1. HI, nice HowTo, but could you explain where is the "webitor" path in <Location /trac/webitor> from? It'll be nice, if you could post the folder structure :)


    1. the /trac/webitor location is the url, it can be anything. eg: /trac/my_project or /trac/monkeys

      so you would go to http://mysite.com/trac/webitor in this case to access trac.



Leave a Comment

Yes, send me an email when a new comment is posted.

The avatars shown next to comments are Gravatars. Click here to get a Gravatar account for free and any other site that supports it will show your avatar too!