在RedHat Enterprise Linux server 5.4下安装配置SubVersion

 

1.下载:subversion-1.7.0-beta2.tar.gz 

2.解压:tar xzvf subversion-1.7.0-beta2.tar.gz

3.配置编译安装

./configure –with-apxs=/usr/Apache2.2.19/bin/apxs –prefix=/usr/subversion1.7 –with-apr=/usr/Apache2.2.19 –with-apr-util=/usr/Apache2.2.19 –with-ssl –enable-maintainer-mode –without-berkeley-db –enable-dav –enable-so

make clean

make

make install

4.遇到的问题解决:

svn:error while loading shared libraries:/usr/local/lib/libsvn_ra_dav-1.so.0:can not restore segment prot after reloc: Permission denied

这是因为selinux导致的,关掉selinux就可以了,或者用以下方法(运行以下命令便可以):

#chcon -t texrel_shlib_t /usr/local/lib/libsvn_ra_dav-1.so

关闭方法

# vi /etc/selinux/config

找到SELINUX=enforcing 改为 SELINUX=disabled

# vi /etc/sysconfig/selinux

如果找到SELINUX=enforcing 也改为 SELINUX=disabled

Apache下整合的SVN,由于自己需要加modules,就重新./configure,make make install后启动apache出现如下错误:

httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider

解决办法:

重新./configure 增加参数

./configure –prefix=/usr/Apache2.2.19 –enable-module=most –enable-shared=most –enable-so –enable-maintainer-mode –enable-rewrite

输入 svn –version 查看svn版本,显示出svn正确的版本号说明配置正常

5.配置svn版本库信息(整合APACHE 和 svn)

修改apache的配置文件

vi /usr/Apache2.2.19/conf/httpd.conf

在最后增加

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

创建版本库

mkdir /usr/svnroot

svnadmin create /usr/svnroot/crm

导入文件到版本库

svn import /share/www file:///usr/svnroot/crm -m “注释”(把/share/www目录下的导入到当前版本库下,这个功能我没试过,不知道行不行,这一步不用也可以继续配置)

配置版本库目录安全性

#chmod –R 700 /usr/svnroot(不让其他人有该目录的权限)

修改http.conf文件的:

#vi /usr/Apache2.2.19/conf/httpd.conf(这个是我系统路径)

User daemon

Group daemon

把上述内容改成:

User apache

Group apache

(注意:我的系统在安装apache的时候,自动增加了apache用户和apache组,如果你系统没有这个用户和组,则请自己添加该用户和组)

5)修改svn版本库的所有者

#chown –R apache:apache /usr/svnroot

6)配置apache支持svn

#vi /usr/Apache2.2.19/conf/httpd.conf

在文件末尾添加以下内容:

<Location /svn>

DAV svn

SVNParentPath /usr/svnroot  #版本库的根目录,请查看第二步

SVNListParentPath on

AuthType Basic #连接类型设置 基本验证

AuthName “Hello welcome to here” #登录时提示对话框的内容

AuthUserFile /usr/svnroot/passwd #访问版本库用户的文件,此处用apache的htpasswd命令生成

AuthzSVNAccessFile /usr/svnroot/auth.conf #版本库权限文件爱你

Require valid-user #”Require valid-user”告诉apache在authfile中所有的用户都可以访问

</Location>

保存退出,重启一下apache:   apachectl –k restart

配置svn权限管理(配置/usr/svnroot/auth.conf)

添加用户

htpasswd –c /usr/svnroot/passwd admin

第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加,第二次添加用户不需要带 –c 参数 如:

htpasswd /usr/svnroot/passwd vince

7.2)权限分配

#vi /usr/svnroot/auth.conf

[groups] /*这个表示群组设置

Admin=admin /*这个表示Admin群组里的成员 admin,多个成员用逗号分割

Develop=vince /*这个表示Develop群组里的成员 vince,多个成员用逗号分割

[/] /*这个表示在所有仓库的根目录下

* = rw /*这个表示对所有的用户都具有读写权限

[crm:/] /*这表示,仓库crm的根目录下的访问权限

admin = rw /*crm仓库admin用户具有读和写权限

vince = r /* crm仓库vince用户具只有读权限

注意:在编辑authz.conf文件时,所有行都必须要顶头写,不能有缩行出现,否则会报错:”Access denied: ‘用户名’ “,里面的内容可以根据自己的需要自行添加,不必与我上面所写的相同!

重启apache

如果访问http://ip/svn/crm(crm是我刚才建的一个版本库)提示输入用户名密码,输入刚才创建的用户名和密码登录进去看到“Revision 0: /”之类的就表示成功啦!

至此apache+svn配置完成。

 

 

转载自 1000SEO
本文链接地址: 在RedHat Enterprise Linux server 5.4下安装配置SubVersion


原文链接: http://blog.csdn.net/vince6799/article/details/6681454

你可能感兴趣的:(在RedHat Enterprise Linux server 5.4下安装配置SubVersion)