你是不是暗恋我,那就给我发个消息呀,让我知道o(∩∩)o
分类: LINUX
2015-01-04 11:28:25
subversion 是基于 APR—Apache 可移植运行库构建的。APR 提供了 Subversion 需要的全部与操作系统相关的操作接口,如磁盘访问, 网络访问,内存管理等。这使得 Subversion 能够使用 Apache 作为其网络服务器程序之一,Subversion 对 APR 的依赖并不 意味着必须使用 Apache 作为它的网络服务器程序。APR是一个独立的程序库,任何应用程序都可以使用它。相反,它意味着 Subversion 能够在所有可运行 Apache 服务器的操作系统上运行,如 Windows, Linux, 各种 BSD, Mac OS X, Netware 等。
一、安装
Subversion的安装方式很多,本文采用最简单的方式安装。在 Subversion 的网站( )上通常可以找到由志愿者提供下载的程序包。
选择CentOS即可下载制作好的二进制文件,采用如下命令即可安装:
安装的时候选择安装httpd,安装之后有如下提示:
Subversion的配置文件就在/etc/httpd/conf.d/subversion.conf,之后的配置工作也就围绕他进行了。
二、账号和权限文件配置
1. 创建账号密码文件
htpasswd –c /svn/passwd.conf test
输入密码,两次确认
注意:第一次设置用户密码要加入 –c 这个参数,以后就可以不用了
2. 创建资料库
首先要创建一个资料库(我使用单资料库的方式),使用svnadmin增加资料库
svnadmin create /svn/svnroot/icec
到icec下看是不是多了文件,多了就是说明创建成功
3.创建权限文件
在icec目录的conf目录下,找到authz文件,复制到/svn目录下,重命名为authz.conf
vi authz.conf
三、Subversion配置subversion.conf
1、模块加载
打开/etc/httpd/conf.d/subversion.conf,这个文件中的如下两行取消注释。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
相应的so文件已经自动copy到了apache/modules。这些工作就不用自己动手了。
2、版本库配置
下面需要自己动手修改subversion.conf最后增加以下内容
3、注意事项
注意:
(1)单个版本库就是SVNPath /svn/svnroot/icec跟./svnadmin create /svn/svnroot/icec目录要一样,要不忙死你……【这个是对单个版本库】,多个版本库知道svn的主目录,我这就是 SVNParentPath /svn/svnroot
(2)AuthzSVNAccessFile是权限控制文件,单个版本库不需要,多个版本库要设置不同版本库的权限
(3)目录svnroot目录的权限设置成755
四、验证安装
打开浏览器,输入地址为http://服务器ip/svn
出现登陆窗口,输入用户名跟密码,
如果可以正常打开如上页面则说明安装配置正常,可以正常使用了,在页面上可以看到由于目前资料库中没有内容,因此看到的内容为空。
五、导入数据到资料库
Cd /usr/local/subversion/bin
./svn import /要导入的目录 file:///svn/svnroot -m “说明文字”
重新打开浏览器,输入地址http://服务器ip/svn,输入用户名密码。
安装配置就完成了。
六、可能遇到的问题
整个过程不会一帆风顺的,这里介绍一些可能遇到的问题。
1、【这个问题是我创建单个版本库时遇到的】安装好了后,浏览器打开http://服务器ip/svn,登陆出现不了页面,出现:
解决:这是httpd.conf里的
2、输入账号密码提示不能认证,查看Apache的/etc/httpd/logs/error_log,有如下提示:
[Tue Oct 05 18:07:09 2010] [error] [client 125.223.118.90] (13)Permission denied: Could not open password file: /svn/svnroot/passwd
[Tue Oct 05 18:07:09 2010] [error] [client 125.223.118.90] access to /svn failed, reason: verification of user id 'test' not configured
从日志看,因为检查过配置文件没有拼错,所以可以肯定是权限问题。从ls命令的结果可以看出,由于passwd的权限是没有问题的。
后来看了一位朋友的帖子【Linux环境下搭建Apache+subversion+svnmanager】的启发,可能是SELinux引发的问题,
于是执行命令:
chcon -R -h -t httpd_sys_content_t /svn/svnroot
后来还是不行。执行以下命令后搞定
chcon -R -h -t httpd_sys_content_t /svn
总结教训:还是linux不熟悉的原因造成的,我是linux的新手。看来得恶补linux的基本知识。
3、组(group)设置
在TortoiseSVN中做Commit操作时可能遇到如下错误:
Can't open file '/svn/svnroot/telnet/db/txn-current-lock': Permission denied
可以将telnet的所属组设置为apache
chgrp -R apache /svn/svnroot/telnet
4、文件夹创建删除属性
在TortoiseSVN中做Commit操作时可能遇到如下错误:
Can't open '/svn/svnroot/telnet/db/tempfile.tmp': Permission denied
Can't make directory '/svn/svnroot/telnet/dav/activities.d': Permission denied
设置telnet 群组的访问方式为“创建和删除文件”