Key words: dav_svn, apache, subversion, tortoisesvn# install apache2sudo apt-get install libapache2-svn apache2# install subversionsudo apt-get install subversion# enable the module mod_dav_svnsudo a2enmod sslsudo a2enmod dav_svn# create the directory for svnmkdir -p /var/svn# create the SVN repository sudo svnadmin create /var/svn/repoOne (then grant the necessary for the account apache will be running under. say we will run under the default account of ubuntu, then make ubuntu the owner of the repository) sudo chown -R ubuntu repoOne (Need to make sure the apache account has sufficient permission to this folder.)# edit the envarsvi /etc/apache2/envars, change as below:export APACHE_RUN_USER=ubuntuexport APACHE_RUN_GROUP=ubuntu# create svn authentication file under /etc/apache2/svn-auth-file##first user for userOne(need "-c" argument as to create a new auth file)sudo htpasswd -cm /etc/apache2/svn-auth-file userOne [PWD]##second user for userTwosudo htpasswd -m /etc/apache2/svn-auth-file userTwo [PWD]# edit dav_svn.confvi /etc/apache2/mods-enabled/dav_svn.conf, so apache knows all accesses to the resource under the directory need to be handled by the module of mod_dav_svn.<Location /svn> DAV svn SVNParentPath /var/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/svn-auth-file Require valid-user SSLRequireSSL</Location>## For AuthType, there can be two options:Basic: this will leverage the ssl over http communicationDSA: not recommended## For SVNParentPath, easy for new repository creation, otherwise use SVNPath instead for single repository# create self assigned certsudo apt-get install ssl-certsudo mkdir /etc/apache2/sslsudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem# new virtual host for svncreate a new virtual server called "svnserver" under /etc/apache2/sites-enabled, contents as below:NameVirtualHost *:443<VirtualHost *:443> ServerName serverName ServerAdmin webmaster@localhost SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem SSLProtocol all SSLCipherSuite HIGH:MEDIUM DocumentRoot /var/svn ErrorLog ${APACHE_LOG_DIR}/error_svn.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn</VirtualHost># restart apachesudo service apache2 restart# check svn setup put the link either in browser or TortoiseSVNhttps://serverName/svn/repoOne/
Reference:
http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.choosing.apache
http://***.com/questions/60736/how-to-setup-a-subversion-svn-server-on-gnu-linux-ubuntu
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5266397.html,如需转载请自行联系原作者