linux+apache svn 服务器端配置说明
 
首先:下载 Subversion apache 的安装包, Apache2.0.59 和subversion1.3.2. Apache是web服务器,用来通过web访问subversion。Apache可以在apache官方网站上下载,下载地址:http://httpd.apache.org/download.cgi
Subversion 稳定版 SVN1.32
 
一、准备好相关软件包 , 复制到 linux 目录下
 1.subversion-1.3.2.tar.gz   /*
下载 1.3.2 这个版本 */
 2.httpd-2.0.59.tar.gz        /*
因网上说 Apache 2.2 版本与 SVN1.3.2 不兼容 */
二、新建一个用户: svnroot , 以下操作非特别说明皆为 root 用户操作
#groupadd svn
#useradd svnroot -g svn
#passwd svnroot
三、编译安装 Apache
// 解压 apache2 安装包
# tar xvzf httpd-2.0.59.tar.gz
// 进入解压后的目录
# cd httpd-2.0.59
// 配置 apache 安装
# ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
# make
// 安装
# make install
// 启动 apache 服务
# /usr/local/apache2/bin/apachectl start
// 打开浏览器 http://localhost/ ,如果出现 Apache 的测试页面,证明已经
安装成功。
 
 
四、安装 Subversion
// 解压 SubVersion 安装包
# tar xvzf subversion-1.3.2.tar.gz
// 进入解压后的目录
# cd subversion-1.3.2
// 配置 subversion 安装
#./configure
--with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2
--with-ssl --with-zlib
--enable-maintainer-mode
# make
// 安装
# make install
// 创建库文件所在的目录 (svnroot 用户进行下面的操作 )
# mkdir /home/svnroot/repository
//
进入subversion的bin目录
# cd /usr/local/subversion/bin
//
创建版本库"test"
# ./svnadmin create /home/svnroot/repository/test
# cd /home/svnroot/repository/test
// 查看 svn 是否安装成功
# /usr/local/subversion/bin/svnadmin --version
 
// 不让其他人有该目录的权限
# chmod 700 /home/svnroot/repository
 (svnroot 用户操作结束 )
 
五、修改 Apache 配置文件
# vi /usr/local/apache2/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 repository " // 连接框提示
 AuthUserFile /home/svnroot/repository/userfile // 用户配置文件
 Require valid-user // 采用何种认证
</Location>
// 重启 apache
 # /usr/local/apache2/bin/apachectl restart
// 打开浏览器访问 http://localhost/svn/test/ ,如果有东西显示就说明成功。
// 其中userfile是通过
"htpasswd [–c] /home/svnroot/repository/userfile username password" 来创建的
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库
 
 
六、权限管理
(1) 增加用户
# htpasswd -c /home/svnroot/repository/userfile 用户名
// 第一次设置用户时使用 -c 表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# htpasswd /home/svnroot/repository/userfile 用户名 ( 加入新的用户 , 就不用 -c )
 
(2) 权限分配
# vi /home/svnroot/repository/authz.conf
[groups]
admins=admin   // 这个表示某群组里的成员
tests = hmf,zym 
[/]             // 这个表示在所有版本库的根目录下
@admins = rw   //admins 组都具有读写权限
* = r           // 这个表示对所有的用户都具有读权限
[test:/]          // 这表示,版本库test的根目录下的访问权限
@tests = rw     // 如果在前面加上@符号,则表示这是个群组权限设置
* =            // 使其他用户不能读写
//组可以被赋予通用户一样的访问权限,使用“ at”( @)前缀来加以区别
// /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon
Group daemon
 // daemon 改为 svnroot ,组也做相应更改 , apache 进程以 svnroot 的身份运行
// 改完后是这个样子
User svnroot
Group svn
// 重启 apache
# /usr/local/apache2/bin/apachectl restart
访问 http://localhost/svn/test  , 现在需要身份验证 , 且通过验证后应该可以看到信息。
 
另说明:
1、 apache进程的权限:因为所有跟版本库传输的操作都是通过 apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没有访问版本库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon #  //将 daemon用户改为svnroot,让apache进程以svnroot身份运行
Group daemon   
//将daemon组改为svn
2、 在 /etc/profile的结尾设置一些svn启动时要做的工作
start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi
3、 /home/respository/svnroot下的文件操作权限有给svnroot.
 
 
 
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐