Installation Of Redmine With SVN On A cPanel/CentOS 5.6 Server

This tutorial explains how to install Redmine with SVN on a cPanel/CentOS 5.6 server. Redmine is a flexible project management web application. Written using the Ruby on Rails framework, it is cross-platform and cross-database.

All steps are executed as ‘root’.

Prior to installation check if ImageMagick is installed:

# /scripts/checkimagemagick

If it is not then install it:

# /scripts/installimagemagick
googletag.cmd.push(function() { googletag.display(‘div-gpt-ad-1527185271042-6’); });

It will take few minutes so prepare a coffee. 😉

After ImageMagick is installed let’s start with mod_dav.

Check if mod_dav is enabled:

# httpd -M | grep dav

dav_module (static)
dav_fs_module (static)

If nothing displayed then recompile Apache using:

# /scripts/easyapache
  • Simple CLI will be loaded:
  • Move with ‘Tab’ between buttons.
  • Load default – “Previously Saved Config”
  • Start customizing based on profile.
  • Choose latest Apache version (e.g.: 2.2.22).
  • Choose latest stable PHP version (e.g.: 5.3.15).
  • Move with ‘Tab’ key to “Exhaustive Options List”.
  • Under “Apache Built-in Module” mark Dav and DAVFs
  • Move down with down arrow to “Preferences”.
  • Mark “Archive Backup (this session only)” – obviously to create a backup of working Apache 🙂
  • “Next step” > “Save and build” > confirm everything if asked… AND the build is running.

Now you can have 20-30 minutes break – drink previously prepared coffee 😀

After it is successfully finished check again if dav is enabled now:

# httpd -M | grep dav

dav_module (static)
dav_fs_module (static)

Next we need to install/enable subversion.

# cd /usr/local/src/

Check latest package of rpmforge repo rpm on according to architecture of your system (uname -p) and download and install it:

# wget
# rpm -K rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -i rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

Install latest subversion from rpmforge:

# yum --enablerepo=rpmforge install subversion

Get sources of the same subversion release you just installed (e.g. 1.6.11):

# svn --version

svn, version 1.6.11 (r934486)
compiled May 14 2012, 05:36:18

  # yum list subversion

Installed Packages
subversion.i386 1.6.11-10.el5_8 installed
subversion.x86_64 1.6.11-10.el5_8 installed

  # wget

Check latest SQLite Amalgamation package on and download it (e.g.: 3.7.13):

# wget

Unpack everything and prepare for configuration:

# tar xjf subversion-1.6.11.tar.bz2
# unzip
# mkdir -p subversion-1.6.11/sqlite-amalgamation/
# cp sqlite-amalgamation-3071300/sqlite3.c subversion-1.6.11/sqlite-amalgamation/sqlite3.c
# ls -lad /usr/local/apache/bin/apxs /home/cpeasyapache/src/httpd*/srclib/apr /home/cpeasyapache/src/httpd*/srclib/apr-util

drwxr-xr-x 26 root root 4096 Aug 11 05:36 /home/cpeasyapache/src/httpd-2.2.22/srclib/apr/
drwxr-xr-x 20 root root 4096 Aug 11 05:37 /home/cpeasyapache/src/httpd-2.2.22/srclib/apr-util/
-rwxr-xr-x 1 root root 22652 Aug 11 05:36 /usr/local/apache/bin/apxs*

Notice the paths – will be needed for next step.

Configure, build and install subversion:

# cd subversion-1.6.11
# ./configure –with-apxs=/usr/local/apache/bin/apxs –with-apr=/home/cpeasyapache/src/httpd-2.2.22/srclib/apr –with-apr-util=/home/cpeasyapache/src/httpd-2.2.22/srclib/apr-util
# make clean
# make && make install

Again – take a short break…

After successful installation of subversion let’s configure it.

Create include folder for EA3 config file:

# mkdir -p /usr/local/apache/conf/userdata/std/2/[USERNAME]/[DOMAIN]
# vi /usr/local/apache/conf/userdata/std/2/[USERNAME]/[DOMAIN]/svn.conf

Add following lines:

<IfModule mod_dav_svn.c>
   <Location /svn>
     DAV svn
     SVNPath /home/[USERNAME]/svn
     AuthType Basic
     AuthName "Subversion"
     AuthUserFile /home/[USERNAME]/.svn.htpasswd
     Require valid-user

Find the location of modules:

# updatedb
# locate


Notice the paths – will be needed for next step.

# vi /etc/httpd/conf/includes/pre_main_global.conf

Add following lines:

   LoadModule dav_svn_module /usr/local/apache/modules/
   LoadModule authz_svn_module /usr/local/apache/modules/

Create svn repository:

# cd /home/[USERNAME]
# svnadmin create svn
# chown -R [USERNAME]:nobody svn

Check if htpasswd is present:

# locate htpasswd


# /usr/local/apache/bin/htpasswd -cm /home/[USERNAME]/.svn.htpasswd [USERNAME_FOR_SVN]

You will be prompted to set up a new password.

Finally do:

# ln -s /home/[USERNAME]/svn /svn

Set up of subversion is done, now let’s make it permanent and make some adjustments…

Create startup script:

# vi /etc/init.d/subversion

Insert following lines:

   #   /etc/rc.d/init.d/subversion
   # Starts the Subversion Daemon
   # chkconfig: 345 90 10
   # description: Subversion Daemon 
   # processname: svnserve

source /etc/rc.d/init.d/functions

[ -x /usr/bin/svnserve ] || exit 1

# To pass additional options (for instace, -r root of directory to server) to
   # the svnserve binary at startup, set OPTIONS here.
   OPTIONS="-r /svn"

   desc="Subversion Daemon"

start() {
   echo -n $"Starting $desc ($prog): "
   daemon $prog -d $OPTIONS
   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog

stop() {
   echo -n $"Shutting down $desc ($prog): "
   killproc $prog
   [ $RETVAL -eq 0 ] && success || failure
   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
   return $RETVAL

case "$1" in
   [ -e /var/lock/subsys/$prog ] && restart
   echo $"Usage: $0 {start|stop|restart|condrestart}"

exit $RETVAL

Now check if the startup script is working:

# service subversion status
  Usage: /etc/init.d/subversion {start|stop|restart|condrestart}

Great! 🙂
Enable it to start at server boot:

# chkconfig subversion on
# chkconfig –list subversion

  subversion      0:off   1:off   2:on    3:on    4:on    5:on    6:off

Now check if all is configured correctly and apply changes:

# /scripts/verify_vhost_includes

Testing /usr/local/apache/conf/userdata/std/2/[USERNAME]/[DOMAIN]/svn.conf…ok

Do NOT continue if there are errors! Examine and double check where is the mistake!

# /scripts/ensure_vhost_includes --user=[USERNAME]

info [safeapacherestart] Forced restart elapsed seconds: 2
Apache successfully restarted.

# /scripts/rebuildhttpdconf
  Built /usr/local/apache/conf/httpd.conf OK
# /scripts/restartsrv_httpd
# service subversion restart

Final check:

Go to

If all is working well you should be prompted for username/password.

About the Author

Leave a Reply