日期:2014-05-16  浏览次数:20745 次

Linux下源码编译并配置Subversion+Apache笔记

1.下载 httpd,apr,apr-util,subversion源码包

2.建立svnroot用户

groupadd svn
useradd svnroot -g svn
passwd svn
?

3.解压并安装apr,apr-util

4.安装httpd

tar xvzf httpd-2.2.17.tar.gz 
cd httpd-2.2.17
./configure --prefix=/opt/apache --enable-dav --enable-so
make && make install

? 5.安装Subversion

tar xvzf subversion-1.6.9.tar.gz
tar xvzf subversion-deps-1.6.9.tar.gz
cd subversion-1.6.9
./configure --with-apxs=/opt/apache/bin/apxs --prefix=/opt/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apu --with-ssl --with-zlib=/usr/lib --enable-maintainer-mode
make &&make install

?

6.建立代码仓库

su svnroot
mkdir /home/svnroot/repository
/opt/subversion/bin/svnadmin create /home/svnroot/repository/test
chmod 700 /home/svnroot/repository
su

?7. 修改配置

vi /opt/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
   SVNParentPath /home/svnroot/repository/ //svn父目录
   AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
   AuthType Basic //连接类型设置
   AuthName "Subversion.tips" //连接框提示
   AuthUserFile /home/svnroot/repository/authfile //用户配置文件
   Require valid-user //采用何种认证
   </Location>
 
//重启apache
 # /opt/apache/bin/apachectl restart
//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。

?8.配置权限

1)增加用户
# htpasswd -c /home/svnroot/repository/authfile 用户名
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# htpasswd  /home/svnroot/repository/authfile 用户名(加入新的用户,就不用-c了)

2)权限分配
# vi /home/svnroot/repository/authz.conf 
 [groups]
admin=useradmin
devteamcs = useradmin,user1,user2//这里定义了一个用户组
[/]//对所有的项目,所有的用户都有读权限,admin用户有读写权限
@admin = rw
* = r
[test:/]//对test项目,
@devteamcs = rw
// 在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon
Group daemon
 // 将daemon改为svnroot,组也做相应更改,让apache进程以svnroot的身份运行
//改完后是这个样子
User svnroot
Group svn
//重启apache
  # /opt/apache/bin/apachectl restart
访问http://localhost/svn/test ,现在需要身份验证,且通过验证后应该可以看到信息

?9.结束