1、系统环境 ubuntu 12.04.1
Ubuntu 12.04.1
2、安装apache2
apt-get install apache2
3、安装svn 相关模块
apt-get install subversion libapache2-svn
4、 配置svn
4.1、创建svn 版本库的根目录
mkdir /opt/svn
4.2、创建版本库 project
svnadmin create /opt/svn/project
4.3、创建 svn 的验证用户
htpasswd -c /etc/subversion/passwd admin
5、 配置apache2 文件
在apache2 的配置文件/etc/apache2/sites-available/000-default 的 <VirtualHost> and </VirtualHost> 元素中加入 以下内容
<Location /svn>
DAV svnSVNParentPath /opt/svnAuthType BasicAuthName "my svn repository"AuthUserFile /etc/subversion/passwdRequire valid-user</Location>
6、 更改目录权限
为了让用户能够通过http 导入和提交文件,需要让http user 能够写svn 的资源库. 在ubuntu 系统中, HTTP 用户 是 www-data
chown -R www-data:www-data /opt/svn
重启apahce, 就可以通过http://[你机器ip]/svn/project 访问svn库了.
7、 通过https访问svn 资源库,用户通过LDAP验证
7.1、安装 ldap 相关模块
apt-get install libapache2-mod-ldap-userdir libapache2-mod-vhost-ldap
7.2、启用 ldap 相关模块
a2enmod ldapa2enmod authnz_ldapservice apache2 restart
7.3、 配置apache2 ssl
a2enmod ssl a2ensite default-ssl
7.4 更改apache2 的配置文件
在apache2 的配置文件/etc/apache2/sites-available/default-ssl 的 <VirtualHost> and </VirtualHost> 元素中加入 以下内容
<Location /svn>
DAV svnSVNParentPath /opt/svnAuthType BasicAuthName "my svn repos"AuthBasicProvider ldapAuthzLDAPAuthoritative offAuthLDAPURL "ldap://192.168.20.55:389/dc=relay2,dc=com" #这里填你的ldap服务器AuthLDAPBindDN "cn=admin,dc=relay2,dc=com" #这里填你的basednAuthLDAPBindPassword "r2" #这里填你的ldap 密码#AuthzSVNAccessFile /opt/svn/authzRequire valid-user</Location>
重启apahce, 就可以通过https://[你机器ip]/svn/project 访问svn库了.
8 、设置svn 用户的权限
8.1、 启用apache2 相应的模块
a2enmod authz_svn service apache2 restart
8.2、创建权限文件
vi /opt/svn/authz
[project:/]
*=rjian.zhou=rw #赋给管理员用户写权限
8.3、更改 apache2 的配置文件
<Location /svn>
DAV svnSVNParentPath /opt/svnAuthType BasicAuthName "my svn repos"AuthBasicProvider ldapAuthzLDAPAuthoritative offAuthLDAPURL "ldap://192.168.20.55:389/dc=relay2,dc=com" #这里填你的ldap服务器AuthLDAPBindDN "cn=admin,dc=relay2,dc=com" #这里填你的basednAuthLDAPBindPassword "r2" #这里填你的ldap 密码AuthzSVNAccessFile /opt/svn/authz # 加入这一句Require valid-user</Location>
重启apche ,权限生效