1.官网下载所需的文件,我在此使用的版本如下:
Httpd-2.2.22.tar.gz subversion-1.6.12.tar.gz subversion-deps-1.6.12
2.安装apache
1)将文件解压到/usr/local下,然后执行#./configure –prefix=/usr/local/apache enable-dav –enable-so&& make && make install
2)启动apache,#/usr/local/apache/bin/apachectl start,在浏览器中输入http://localhost,可以看到欢迎页面,说明安装成功。
3.安装svn
1)分别解压subversion-1.6.12.tar.gz , subversion-deps-1.6.12到/usr/local下,解压后的文件会自动合并为一个文件夹subversion-1.6.12
2)删除从deps里解压出来的apr, apr-util.执行#rm –rf apr #rm–rf apr-util.原因如下:SVN 依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。 由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的。(网上摘录)
3)接着编译安装svn。#./configure –prefix=/usr/local/subversion –with-apxs=/usr/local/apache/bin/apxs–with-apr=/usr/local/apache/bin/apr-1-config –with-apr-util=/usr/local/apache/bin/apu-1-config&& make &&make install
安装的时候会遇到这个问题:
我使用的是ubuntu,是因为缺少两个包:libssl-dev和libxml2-dev。直接用apt-get install安装,不会报这样的错误了。
然后再次编译,又会遇到一个错误:
可以看到是因为缺少expat包,网上有解决方法是安装expat-1.95.8-8.2.1.i386.rpm和expat-devel-1.95.8-8.2.1.i386.rpm这两个包。
因为我用ubuntu,所以直接apt-get install libexpat-dev来搞定。
4) 最后执行#/usr/local/subversion/bin/svnserve - -version,看到有版本信息输出,说明svn安装成功了。
4.配置svn
1) 首先创建数据仓库test:
#mkdir/svn/repository
#/usr/local/subversion/bin/svnadmincreate /svn/repository/test
可以看到目录下多了test,test里面会有一些文件。
2) 然后添加用户:
# /usr/local/apache/bin/htpasswd –cmb /svn/repository/authfilelvxiaobao lvxiaobao
可以看到在repository下生成了名为authfiled 的文件,里面保存的是用户名和密码
其中参数c的意思是创建文件的意思,如果是第一次添加用户就要用到c,如果是继续添加,就不要c了。
3) 然后是配置svn用户的权限
可以找到在数据仓库test下有个名为conf的文件夹,编辑下面的authz,
添加
[test:/]
Lvxiaobao=rw
5.配置apache
1)配置httpd.conf。#vim /usr/local/apache/conf/httpd.conf
首先看一下里面有没有这两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
这是在上一步编译的时候生成的,我这里没问题,顺利进行。
然后找到
Userdaemon
Group daemon
把上述内容改成:
User apache
Group apach
(我的系统在安装apache的时候未自动添加这个组和用户,所以需自己添加一下)
然后继续,在文件末尾添加:
可以看到注释掉两行,这两行在网上的其他一些教程中有,但是我使用的时候总是在验证的时候有问题,后来看了亮哥的配置,按照他的这么写了,用SVNPath代替掉SVNParentPath,然后就能自动寻找到authz,不必配置了。
最后,要修改数据仓库的所有者为apache:#chown –R apache:apache /svn/repository
6.最后重启apache服务和svn服务,在客户端就可以用http://ip/test来访问到svn了。
查看svn服务是否启动:ps -ef|grep svnserve
启动svn服务:/usr/local/subversion/bin/svnserve -r /svn/repository-d