环境: AD:windows 2008 R2 x86_64:192.168.101.12:gz.newp.local SVN:RHEL 6.3 x86_64:192.168.130.25 仓库:/data/gz/svn/it
一. 配置好yum源 详细请看我的另一篇文章《RHEL常用源》
二. 安装
yum install httpd httpd-devel subversion mod_dav_svn
a. 确定已经安装了svn模块:mod_dav_svn
#cd /etc/httpd/modules
#ls | grep svn
mod_authz_svn.so
mod_dav_svn.so 如果要确认是否成功的安装了svn可以通过如下的命令进行验证:
svn –version
b. 确认apache能正常启动。 测试Apache是否可以正常启动: #service httpd start 在浏览器中访问:http://localhost, 如果能看到Apache的页面,则说明Apache已经正常启动。
c. 进入到/etc/httpd/conf.d目录下用vim打开subversion.conf配置文件
一定要保证下面的两句话存在于配置文件中,否则无法加载svn的模块(一般用YUM安装的话,下面两个模块在安装的过程中已经改好了)。 LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
三. 建立仓库 #mkdir -p /data/gz/svn #chown -R apache:apache /data //必须要把目录权限给apache,否则会报http 500内部服务器错误 #svnadmin create /data/gz/svn/it #cd /data/gz/svn/it #ls conf dav db format hooks locks README.txt 如果目录下有这些文件,表示仓库创建成功。
四. 编辑/etc/httpd/conf/http.d # vim /etc/httpd/conf/http.d - NameVirtualHost *
- <VirtualHost *>
- DocumentRoot /data/gz/svn/baomiban //这里最好不要指向你所有的仓库,如果你指向了/data/gz/svn ,那么apache就不知道时候将请求提交给subversion模块
- ServerName svn.newp.local
- LogLevel warn
- ServerSignature on
- <Directory “/data/gz/svn”>
- Options Indexes FollowSymLinks MultiViews
- Order allow,deny
- allow from all
- </Directory>
- </VirtualHost>
五. 编辑ldap配置文件
# vim /etc/openldap/ldap.conf
添加一行
REFERRALS off
六. 尝试用ldapsearch连接AD域控
# ldapsearch -x -b “CN=administrator,CN=Users,DC=gz,DC=newp,DC=local” -D “svnuser@gz.newp.local” -W
这个命令的意思是:
使用svnuser的身份去查询gz.newp.local域中的Users这个OU里的administrator信息,然后返回一大堆东西,比较有用的就是其中的sAMAccountName,这个就是下文AuthLDAPURL中用到的关键字
七. 修改httpd.conf
就一下内容添加到上面新建的虚拟主机中
重启httpd
# service httpd restart
八. 修改access.acl
# vim /data/gz/svn/access.acl
[it:/]
* = r
rajaruan = rw
[/] 这个表示所有仓库的根目录
[A:/] 这个表示A仓库的根目录
[A:/it/rajaruan] 这个表示A仓库中,rajaruan这个目录
错误汇总: 一.http 500 内部服务器错误 解决办法: 1.检查你的域用户是否在OU=Users,DC=gz,DC=newp,DC=local这个OU里 2.检查apache是否有权限 3.检查AuthLDAPBindDN指定的用户时候存在
二.http 403 禁止访问 解决办法: 1.检查access.acl文件,是否具有权限
三.http 401 未授权 查一下apache的error_log [error] [client 192.168.101.234] user rajaruan not found: /svn/it
这个应该是ldap没有连接到域控制器,或者找不到OU=Users,DC=gz,DC=newp,DC=local这个OU 检查一下你的AuthLDAPURL是否正确
|