{"id":62,"date":"2010-07-07T12:27:49","date_gmt":"2010-07-07T18:27:49","guid":{"rendered":"http:\/\/blog.d5.ca\/?p=62"},"modified":"2011-03-17T11:34:31","modified_gmt":"2011-03-17T17:34:31","slug":"subversion-installation-with-submin-webdav-websvn","status":"publish","type":"post","link":"https:\/\/blog.d5.ca\/?p=62","title":{"rendered":"Subversion Installation with Submin, WebDAV, &#038; WebSVN"},"content":{"rendered":"<p>Installation of Subversion with:<\/p>\n<ul>\n<li> Submin for administering subversion users and repositories<\/li>\n<li>WebDAV for access to repositories<\/li>\n<li>WebSVN for browser access to repositories<\/li>\n<\/ul>\n<p><strong>Subversion Installation:<\/strong><\/p>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">aptitude install subversion<\/pre>\n<p><strong>Submin Installation:<\/strong><\/p>\n<p>Add the following repository to \/etc\/apt\/sources.list:<\/p>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\"># Submin Repository\r\ndeb http:\/\/debian.supermind.nl\/ current main<\/pre>\n<p>Install key for submin repository:<\/p>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">wget -q -O - http:\/\/supermind.nl\/debian.key | apt-key add -<\/pre>\n<p>Update Package List and Install Submin:<\/p>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">aptitude update\r\naptitude install submin<\/pre>\n<p><strong>Create Folder Structure and Files:<\/strong><\/p>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">mkdir \/var\/svn\r\nmkdir \/var\/svn\/conf\r\nmkdir \/var\/svn\/repos<\/pre>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">touch \/var\/svn\/conf\/authz\r\ntouch \/var\/svn\/conf\/htpasswd\r\ntouch \/var\/svn\/conf\/submin.conf\r\ntouch \/var\/svn\/conf\/userproperties.conf\r\ntouch \/var\/svn\/conf\/apache-svn.alias<\/pre>\n<p><strong>Add Submin Admin User<br \/>\n<\/strong><\/p>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">htpasswd -m \/var\/svn\/conf\/htpasswd administrator<\/pre>\n<p><strong>Configuration File Contents:<\/strong><\/p>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\"># \/var\/svn\/conf\/authz\r\n[groups]\r\nsubmin-admins = administrator<\/pre>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">#\/var\/svn\/conf\/submin.conf\r\n[svn]\r\nauthz_file = \/var\/svn\/conf\/authz\r\nuserprop_file = \/var\/svn\/conf\/userproperties.conf\r\naccess_file = \/var\/svn\/conf\/htpasswd\r\nrepositories = \/var\/svn\/repos\r\n\r\n[www]\r\nbase_url = \/submin\r\nsvn_base_url = \/svn\r\ntrac_base_url =\r\n\r\n[backend]\r\nbindir = \/usr\/share\/submin\/bin\r\n\r\n[generated]\r\nsession_salt = d7xOuU8hY9cF1qB\/u\/<\/pre>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid\"># \/var\/svn\/conf\/apache-svn.conf\r\n# Default Apache Submin Configuration\r\n\r\nAlias \/submin \/usr\/share\/submin\/www\r\n&lt;Directory \/usr\/share\/submin\/www&gt;\r\n Options ExecCGI FollowSymLinks\r\n AddHandler cgi-script py cgi pl\r\n SetEnv SUBMIN_CONF \/var\/svn\/conf\/submin.conf \u00a0\r\n\r\n RewriteEngine on\r\n RewriteBase \/submin\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n RewriteCond %{REQUEST_FILENAME} !-f\r\n RewriteRule ^(.+)$ submin.cgi\/$1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n RewriteRule ^\/?$ submin.cgi\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n Order Allow,Deny\r\n Allow from all\r\n&lt;\/Directory&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n# WebDAV Configuration\r\n&lt;Location \/svn&gt;\r\n DAV svn\r\n SVNParentPath \/var\/svn\/repos\r\n AuthzSVNAccessFile \/var\/svn\/conf\/authz\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n AuthType Basic\r\n AuthName \"Subversion repository\"\r\n AuthUserFile \/var\/svn\/conf\/htpasswd\r\n Require valid-user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n Order Allow,Deny\r\n Allow from all\r\n Satisfy Any\r\n&lt;\/Location&gt;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n# WebSVN Configuration\r\nAlias \/websvn \"\/var\/svn\/websvn\/\"\r\n&lt;Directory \"\/var\/svn\/websvn\/\"&gt;\r\n Options -Indexes -FollowSymLinks\r\n AllowOverride None\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n AuthType Basic\r\n AuthName \"Subversion repository\"\r\n AuthUserFile \/var\/svn\/conf\/htpasswd\r\n Require valid-user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\r\n Order Allow,Deny\r\n Allow from all\r\n Satisfy All\r\n&lt;\/Directory&gt;\r\n\r\n# Disallow web access to directories that don't need it\r\n&lt;Directory \"\/var\/svn\/websvn\/include\"&gt;\r\n Order Deny,Allow\r\n Deny from All\r\n&lt;\/Directory&gt;<\/pre>\n<p><strong>WebSVN Installation<\/strong><\/p>\n<ul>\n<li>Download WebSVN from <a href=\"http:\/\/www.websvn.info\/download\/\" target=\"_blank\">http:\/\/www.websvn.info\/download\/<\/a>.<\/li>\n<li>Extract the contents of the archive to <code>\/var\/svn\/ and rename the folder from 'websvn-?.?.?' to just 'websvn<\/code>&#8216;.<\/li>\n<\/ul>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid\">cd \/var\/svn\r\nwget http:\/\/websvn.tigris.org\/files\/documents\/1380\/47525\/websvn-2.3.1.tar.gz\r\ntar -xvzf websvn-2.3.1.tar.gz\r\nmv websvn-2.3.1 websvn<\/pre>\n<ul>\n<li>Configure WebSVN with the following file:<\/li>\n<\/ul>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">&lt;?php\r\n\/\/ # \/var\/svn\/websvn\/include\/config.php\r\n\r\n$config-&gt;setSvnConfigDir('\/etc\/subversion');\r\n$config-&gt;parentPath('\/var\/svn\/repos');\r\n$config-&gt;addTemplatePath($locwebsvnreal.'\/templates\/calm\/');\r\n$config-&gt;addTemplatePath($locwebsvnreal.'\/templates\/BlueGrey\/');\r\n$config-&gt;addTemplatePath($locwebsvnreal.'\/templates\/Elegant\/');\r\n$config-&gt;useAuthenticationFile('\/var\/svn\/conf\/authz'); \/\/ Global access file\r\n$config-&gt;addInlineMimeType('text\/plain');\r\n$config-&gt;setMinDownloadLevel(2);\r\n$config-&gt;useGeshi();\r\nset_time_limit(0);\r\n$config-&gt;expandTabsBy(8);<\/pre>\n<p><strong>Configure Permissions:<\/strong><\/p>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">chown -R root:www-data \/var\/svn\r\nchmod -R ug=rwX,o= \/var\/svn\/conf\r\nchmod g-w \/var\/svn\/conf\/apache-svn.conf\r\nchmod -R ug=rwX,o= \/var\/svn\/repos\r\nchmod -R 750 \/var\/svn\/websvn<\/pre>\n<p><strong>Configure Apache:<\/strong><\/p>\n<ul>\n<li>Enable Apache Mod Rewrite<\/li>\n<\/ul>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">ln -s \/etc\/apache2\/mods-available\/rewrite.load \/etc\/apache2\/mods-enabled\/rewrite.load<\/pre>\n<ul>\n<li>Include the required apache configuration by adding a symlink to the apache conf.d directory<\/li>\n<\/ul>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">ln -s \/var\/svn\/conf\/apache-svn.conf \/etc\/apache2\/conf.d\/apache-svn.conf<\/pre>\n<ul>\n<li>Restart Apache Server<\/li>\n<\/ul>\n<pre style=\"margin: 5px 5px 5px 30px; padding: 5px; overflow: auto; border: 1px solid;\">\/etc\/init.d\/apache2 restart<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Installation of Subversion with: Submin for administering subversion users and repositories WebDAV for access to repositories WebSVN for browser access to repositories Subversion Installation: aptitude install subversion Submin Installation: Add the following repository to \/etc\/apt\/sources.list: # Submin Repository deb http:\/\/debian.supermind.nl\/ current main Install key for submin repository: wget -q -O &#8211; http:\/\/supermind.nl\/debian.key | apt-key add [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[25],"tags":[11,20,17,19],"class_list":["post-62","post","type-post","status-publish","format-standard","hentry","category-reference","tag-linux","tag-subversion","tag-svn","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/blog.d5.ca\/index.php?rest_route=\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.d5.ca\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.d5.ca\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.d5.ca\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.d5.ca\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=62"}],"version-history":[{"count":25,"href":"https:\/\/blog.d5.ca\/index.php?rest_route=\/wp\/v2\/posts\/62\/revisions"}],"predecessor-version":[{"id":138,"href":"https:\/\/blog.d5.ca\/index.php?rest_route=\/wp\/v2\/posts\/62\/revisions\/138"}],"wp:attachment":[{"href":"https:\/\/blog.d5.ca\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.d5.ca\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.d5.ca\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}