subversion_logo-384x332 geeko plesk.logo Subversion (SVN) is an open source version control system. It allows users to keep track of changes made over time to any type of electronic data. Typical uses are versioning source code, web pages or design documents.

I now host my own private subversion at

A required step to be able to build some small project and finish the prototype of Continuous build for Joomla!


How to install Subversion SVN on Plesk 9

Requirement: having a root access to your server.

Install Subversion

# zypper se subversion 
Read installed Package...

S | Name              | Zusammenfassung                                                | Type 
  | subversion        | A Concurrent Versioning system similar to but better than CVS  | Package
  | subversion-devel  | Development package for Subversion developers                  | Package
  | subversion-doc    | Documentation files for Subversion                             | Package
  | subversion-perl   | Allows Perl scripts to directly use Subversion repositories.   | Package
  | subversion-python | Allows Python scripts to directly use Subversion repositories. | Package
  | subversion-server | Apache server module for Subversion server                     | Package
  | subversion-tools  | Tools for Subversion                                           | Package

And install the required package, at least subversion  and subversion-server

# zypper in subversion
# zypper in subversion-server

Add a new group and user for more security (one user for every daemon with limited or no rights to do something else is a good Linux guideline!)

# groupadd svn
# useradd -d /srv/svn -s /bin/false svn

Create the root of Subversion

# mkdir /srv/svn/
# mkdir /srv/svn/repos

Prepare Plesk 9

Now the most easiest part, I create a new sub domain using Plesk adminitrator panel

I move the default configuration file from /etc/apache2/conf.d/ to the sub domain conf directory

# mv /etc/apache2/conf.d/subversion.conf /srv/www/vhosts/

# mv subversion.conf vhost.conf

And change some settings

# vi vhost.conf

ErrorLog    /var/log/apache2/
TransferLog /var/log/apache2/
# Do not set DocumentRoot. It is not needed here and just causes trouble.
# Map the error documents back to their defaults.
# Otherwise mod_dav_svn tries to find a "error" repository.
ErrorDocument 400 default
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 408 default
ErrorDocument 410 default
ErrorDocument 411 default
ErrorDocument 412 default
ErrorDocument 413 default
ErrorDocument 414 default
ErrorDocument 415 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 502 default
ErrorDocument 503 default 
    <Location />
      DAV svn
      SVNParentPath  /srv/svn/repos
      SVNListParentPath on
      AuthType Basic
      AuthName "subversion repository"
      AuthBasicProvider file
      AuthUserFile /srv/svn/auth/svn.htpasswd
      SetOutputFilter DEFLATE
        Require valid-user


To reread and include overridden vhost.conf, and tell Plesk that you have create new vhost.conf, run at least once 
# /usr/local/psa/admin/sbin/websrvmng

Prepare Apache

I install the DAV (Web-based Distributed Authoring and Versioning) modules by running

# a2enmod dav
# a2enmod dav_svn

Which is the same as editing vi /etc/sysconfig/apache2 and adding dav and dav_svn to the list of loaded module.

Preparing the file system

Set up the password file:

# mkdir /srv/svn/auth
# vi /srv/svn/auth/svn.htpasswd

Change the group so that ONLY Apache can access it

# chown wwwrun:www /srv/svn/auth/svn.htpasswd

Tighten all permissions

# chmod 640 /srv/svn/auth/svn.htpasswd

Tighten the repository

# chown -R wwwrun:www /srv/svn/repos/

# find /srv/svn/repos/ -type d -exec chmod 755 {} \;

# find /srv/svn/repos/ -type f -exec chmod 644 {} \;

Add SVN Users

# htpasswd2 /srv/svn/auth/svn.htpasswd xxxx.yyyy

and enter the password twice.

Create some root repositories

# svnadmin create /srv/svn/repos/joomla

I am root, so I give way to less permissions to the new repository for Apache, so I give rights back to Apache.

# chown –R wwwrun:www /srv/svn/repos/joomla

Restart Apache / Subversion

# rcapache2 restart

Start the daemon

# /etc/init.d/svnserve  start

Point your browser to




Additionnal Help

You might like also

Failed opening required PHPUnit/TextUI/TestRunner.php in Maven For PHP
This issue has turn me upside down a long time. In fact in the official Google Group I was not the only one to have this issue. I did try the following, and it is always good to check first Checking PHP version, Starting Maven with -X for having more debug information Testing it in Eclipse + M2Eclipse on windows, was working there, Comparing calculated PHP include path on Windows and Linux: they were identical in this case Only …
3486 Days ago
When Joomla! meet Maven for PHP
I will quickly describe in this post how you can code your component/plugins/modules against a specific version of Joomla! with no effort using Maven for PHP. The trick I made is to package the whole Joomla distribution in a jar file, and add a Maven dependency to the project. As Joomla, PHPUnit, or any other 3rd party is not a set of class packaged in a jar, the brilliant idea of Maven for PHP is to unpack all these dependencies …
3777 Days ago
My 2 first Joomla! component in continuous build
Status/Done Build with Maven For PHP in TeamCity SVN repository at and Totally independent of continuous build server (Thanks to MAVEN), so Hudson, Bamboo and Cruise Control are SUPPORTED. …
3778 Days ago
Configuring TeamCity, Maven for PHP for Joomla continuous build
Maven for PHP uses the power of Maven for building, reporting on and creating documentations of PHP projects. It adapts the Maven build lifecycle to the PHP world while fully supporting PHP 4 and PHP 5. PHP for Maven uses PHPUnit for unit testing and doxygen for creating the api documentation. Use a PHP library project to create a library that can be used by other PHP libraries or PHP web projects. Use a PHP web project to create a …
3779 Days ago
No Thumbnail was found
I put some effort the last few days in this new framework. Done: I did document some part of it at TeamCity is installed/configured/documented (windows only) XAMPP is installed/configured/documented (windows only) I also at the same time configured a Puppy Linux VMWare image that will permit to anybody to have a running environment in no time. I am able to unpack all Joomla! versions that are committed in any repository (CVS, SVN, Clearcase) They can be unpacked anywhere on …
3865 Days ago
Installing PHPUnit / Selenium in XAMPP
&160; &160; A small how to install PHPUnit via PEAR in an XAMPP running on a windows box. A prerequisite for a continuous build strategy. PHPUnit is a member of the xUnit family of testing frameworks and provides both a framework that makes the writing of tests easy as well as the functionality to easily run the tests and analyze their results. PHPUnit homepage - Testing PHP Code with PHPUnit Planet PHPUnit Sebastian Bergmann (creator of PHPUnit) Installing XAMPP …
3890 Days ago
ContinuousBuild4Joomla project submitted to
I will commit soon a first draft (alpha) of what is expected to bring continuous build to any Joomla! component (or event to Joomla! core itself ;-)) You are free to join the project, all documentation effort stay at the moment in my WIKI &160; …
3912 Days ago
No Thumbnail was found
Automatic installation of Joomla! runtime environments Main ideas Build is scalable Distributed build management optimize hardware resources utilization by parallelizing product builds within the build agents grid. With build chains support, it is even possible to break down a single build procedure into several parts to run them on different build agents &8212; both in sequence and in parallel &8212; using the same set of sources in all of them. I want to be able to test my components against …
3917 Days ago