一、准备工作:
到apache官方网站下载最新的subversion及httpd安装包。后续可能还需要一些依赖
二、安装步骤
1、安装httpd
1) 解压httpd tar zxvf httpd-2.2.21.tar.gz
2)进入cd httpd-2.2.21
3)执行后面的命令 ./configure --enable-dav --enable-so --prefix=/opt/apache/ (注意:前两个参数一定要给)
执行到这一步可能会报一个:configure: error: no acceptable C compiler found in $PATH
当遇到这个错误的时候是因为你的服务器上没有安装 c 编译环境,这时你需要插入linux系统光盘,安装上 gcc
(这里只是举一个例子,后续安装过程中还会出现类似的问题,只要看准错误信息就能够很快速的解决了)
4)执行 make
5)执行 sudo make install (注:sudo指以超级管理员的权限去执行这个命令,每一次需要输入root用户密码,默认5分钟超时)
6)进入 cd /opt/apache/bin 启动apache ./apachectl start
打开浏览器http://localhost/如果有测试页"It works!"出现则证明已经安装成功
2、安装subversion
1)解压subversion tar zxvf subversion-1.7.1.tar.gz
2)进入subversion-1.7.1 cd subversion-1.7.1
3)执行命令 ./configure --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-openssl --with-zlib
--enable-maintainer-mode
(注意:执行到这里可能会报一个:configure: error: subversion requires openssl 或者类似的错误,别着急,那是因为subversion安装
时需要一些依赖,可 能要早期的版本中这些依赖需要我们自己去下载,但是我使用的1.7已经不需要我们自己去下载了,你只需
要在subversion-1.7.1目录中执行一下 ./get-deps.sh ,这样就会自动下载并安装这个些依赖了,但是别高兴得太早,这些依赖都是
从国外的网站上面下载的,有些可能需要翻墙才能够下载得下来,比如我在安装时 zlib 这个依赖就下载不了,几经周折才搞到手,
需要自己下载的依赖还得自己安装,程序帮助我们下载的依赖是自己安装的,还有一点,下载的依赖必须拷贝到相应的目
录 subversion-1.7.1/build/generator/templates 然后进行安装 ./configure --enable-dav --enable-so --prefix=/opt/apache/ )
当所有都依赖装好之后,再执行以上命令安装subversion就没问题了
4)执行命令 make
5)执行命令 sudo make install
3、创建仓库
1)./svnadmin create /home/svnmanager/svn/ (注:svnmanager是指管理svn的linux用户)
2)进入svn目录,看是不是有些新的文件或者是目录,如果有就证明创建成功了
4、svn配置
1)修改apache配置文件:httpd.conf文件,以实现用户的访问
vi /opt/local/apache/conf/httpd.conf
添加两条语句 LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在文件末尾添加如下语句
<Location /svn>
DAV svn
SVNPath /home/svnmanager/svn //svn 路径
AuthType Basic //连接类型
AuthName "Subversion Repository" //
AuthzSVNAccessFile /home/svnmanager/svn/conf/authz
AuthUserFile /home/svnmanager/passwds //用户配置文件
Require valid-user //认证方式
</Location>
2)重启httpd
在目录 /usr/local/apache/bin/ 下执行 sudo apachectl -k restart
在浏览器中访问 http://localhost/svn,如果有东西显示就说明成功
5、用户权限管理
1)进入到 /opt/apache/bin
2)添加用户 htpasswd –c /home/svnmanager/passwds user001
(注:第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加;以后每次加入新的用户,就不需要使用-c)
htpasswd /home/svnroot/repository/authfile
3)分配权限 vi /home/svnmanager/svn/conf/authz
admin = user001
devs = user002,user003,user004
[svn:/]
@admin = rw
[svn:/folder001]
@devs = rw
[svn:/folder002]
@devs = rw
去掉以下几行的注释:
anon-access = read
auth-access = write
authz-db = authz
password-db = passwd
5)修改管理账号
vi /home/svnmanager/svn/conf/passwd
[users]
user001=123456 //用户名=密码
6)修改执行权限及文件属性chmod –R 755 /home/svnmanager/svn
chown -R daemon /home/svn/*
(可能会出现的错误:Can't open file 'svn/db/txn-current-locks':permission denied)
(注意:在前面的一系列操作中都有可能误用root用户权限操作,而导致svn客户端不能访问svn服务器,当发生这样的错误之后只要把软件
安装目录中的文件和目录改为管理svn的用户就可以了,比如上面的 svnmanager 用户。 但是svn仓库的属主必须是daemon用户)
(可能会出现的错误:Permission denied: make_sock: could not bind to address [::]:80
Permission denied: make_sock: could not bind to address 0.0.0.0:80)
这个问题是怎么解决的我忘了,如果上面的问题解决了这个好像也解决了 三、大功告成
设置完成之后重启apache,subversion就可以用了