linux系统下apache+subversion搭建版本控制服务器
2010-03-19 03:39
585 查看
环 境:Linux RedHat Enterprise Linux Server release 5
源码包:httpd-2.2.15.tar.gz subversion-1.5.6.tar.bz2
【编译安装httpd】
# tar -xvzf httpd-2.2.15.tar.gz
# cd httpd-2.2.15
# cd srclib/apr
# ./configure /
> --prefix=/usr/local/apr /
> --enable-threads /
> --enable-other-child /
> --enable-static
# make
# make install
# cd ../
# cd apr-util
# ./configure /
> --prefix=/usr/local/apr-util /
> --with-apr=/usr/local/apr/ /
> --with-mysql=/usr/local/mysql
# make && make install
# cd ../../
# ./configure /
> --prefix=/usr/local/apache2 /
> --with-apr=/usr/local/apr
> --with-apr-util=/usr/local/apr-util
> --enable-dav /
> --enable-so
# make
# make install
# /usr/local/apache2/bin/apachectl –k start
* 注意:--enable-dav --enable-so参数是必须要加的,你还可以根据您的需要添加其他的参数。
* --enable-dav 启用davweb支持,是subversion+apache组合必选,缺少的话,在运行apache会出现undefined symbol: dav_register_provider的错误
* apr 和 apr-util一般会在httpd的安装包内,subversion安装会使用到apr和par-util,如果当前系统没有,最好安装一下
【编译安装subversion】
我在安装make install中出现如下问题,
error while loading shared libraries: /path/to/*.so: cannot restore segment prot after reloc: Permission denied
请尝试关闭 SELinux(编辑 /etc/selinux/config),如果还是不行,尝试执行chcon -t texrel_shlib_t /path/to/*.so 一般可以解决,然后重新在执行make install
# tar -jxvf subversion-1.5.6.tar.bz2
# cd subversion-1.5.6
# ./configure /
> --prefix=/usr/local/subversion /
> --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install
* 创建版本库所在目录/var/svnroot
# mkdir -p /var/svnroot
# /usr/local/subversion/bin/svnadmin create /var/svnroot
# chwon –P apache:apache /var/svnroot
* 关于avnadmin和svnserve的参数,请使用--help查询
* 修改版本库的根目录/var/svnroot的用户和组成和apache一个用户和组,否则可能会出现:Can't open '/path/to/db/txn-current-lock': Permission denied
【整合apache和svn】
编辑apache主配文档(/usr/local/apache2/conf/httpd.conf)
检查文档中是否存在下列两句,若没有则可能subversion安装有问题
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
添加下列标签
<Location /svn>
DAV svn
SVNPath /var/svnroot
AuthType Basic
AuthName "Welcome to MySVN"
AuthUserFile /var/svnroot/svn.passwd
AuthzSVNAccessFile /var/svnroot/svn.authz
Require valid-user
</Location>
* 标签说明
* <Location /svn> 意思是Subversion版本库的URL是
* DAV svn 告诉Apache响应http://localhost/svn请求的是svn模块
* SVNPath 版本库目录,用于单一版本库管理
* SVNParentPath 版本库的根目录,用于多版本控制管理
* SVNListParentPath on 显示SVNParentPath下的版本库
* AuthType Basic 激活基本认证
* AuthName "Welcome to MySVN" 认证对话框提示信息
* AuthUserFile 指定使用的用户密码文件,由apache 的htpasswd命令生成
* AuthzSVNAccessFile 版本库的访问权限控制文件
* Require valid-user 有输入了正确的用户/密码的用户可以访问
创建svn.passwd文件
# /usr/local/apache2/bin/htpasswd -cm /var/svnroot/svnpasswd user1
New password:
Re-type new password:
Adding password for user user1
* 第一次添加使用 -cm 同时会创建文件,此后可使用 -m 创建。详情请参阅htpasswd --help
# /usr/local/apache2/bin/htpasswd –m /var/svnroot/svnpasswd user2
New password:
Re-type new password:
Adding password for user user2
创建svn.authz
# vi /var/svnroot/svn.auzhz
[groups]
group1 = user1
group2 = user2
[/]
@group1 = rw
@group2 = r
* =
补充说明:
如果使用apache+svn进行版本控制,那么在创建版本库时产生的conf目录里的配置文件时没意义的。
对版本库的访问时基于apache平台,所以无需启动svnserve,除非同时想采用svn://访问,但是svnserve默认只能开启单一版本库的访问控制,因为svnserve启动必须指向相关版本的目录。
无论是单版本库还是多版本库控制,如果开启了访问控制AuthType Basic,那么用户的管理和权限都在AuthUserFile和AuthzSVNAccessFile指定的文件里。
单个版本控制时,在AuthzSVNAccessFile指定文件里使用[/path/to]配置用户在指定目录权限
多个版本库控制时,在AuthzSVNAccessFile指定文件里进行分组,使用[project_name:/path/to]配置用户在指定版本库的指定目录的权限
源码包:httpd-2.2.15.tar.gz subversion-1.5.6.tar.bz2
【编译安装httpd】
# tar -xvzf httpd-2.2.15.tar.gz
# cd httpd-2.2.15
# cd srclib/apr
# ./configure /
> --prefix=/usr/local/apr /
> --enable-threads /
> --enable-other-child /
> --enable-static
# make
# make install
# cd ../
# cd apr-util
# ./configure /
> --prefix=/usr/local/apr-util /
> --with-apr=/usr/local/apr/ /
> --with-mysql=/usr/local/mysql
# make && make install
# cd ../../
# ./configure /
> --prefix=/usr/local/apache2 /
> --with-apr=/usr/local/apr
> --with-apr-util=/usr/local/apr-util
> --enable-dav /
> --enable-so
# make
# make install
# /usr/local/apache2/bin/apachectl –k start
* 注意:--enable-dav --enable-so参数是必须要加的,你还可以根据您的需要添加其他的参数。
* --enable-dav 启用davweb支持,是subversion+apache组合必选,缺少的话,在运行apache会出现undefined symbol: dav_register_provider的错误
* apr 和 apr-util一般会在httpd的安装包内,subversion安装会使用到apr和par-util,如果当前系统没有,最好安装一下
【编译安装subversion】
我在安装make install中出现如下问题,
error while loading shared libraries: /path/to/*.so: cannot restore segment prot after reloc: Permission denied
请尝试关闭 SELinux(编辑 /etc/selinux/config),如果还是不行,尝试执行chcon -t texrel_shlib_t /path/to/*.so 一般可以解决,然后重新在执行make install
# tar -jxvf subversion-1.5.6.tar.bz2
# cd subversion-1.5.6
# ./configure /
> --prefix=/usr/local/subversion /
> --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install
* 创建版本库所在目录/var/svnroot
# mkdir -p /var/svnroot
# /usr/local/subversion/bin/svnadmin create /var/svnroot
# chwon –P apache:apache /var/svnroot
* 关于avnadmin和svnserve的参数,请使用--help查询
* 修改版本库的根目录/var/svnroot的用户和组成和apache一个用户和组,否则可能会出现:Can't open '/path/to/db/txn-current-lock': Permission denied
【整合apache和svn】
编辑apache主配文档(/usr/local/apache2/conf/httpd.conf)
检查文档中是否存在下列两句,若没有则可能subversion安装有问题
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
添加下列标签
<Location /svn>
DAV svn
SVNPath /var/svnroot
AuthType Basic
AuthName "Welcome to MySVN"
AuthUserFile /var/svnroot/svn.passwd
AuthzSVNAccessFile /var/svnroot/svn.authz
Require valid-user
</Location>
* 标签说明
* <Location /svn> 意思是Subversion版本库的URL是
http://localhost/svn
* DAV svn 告诉Apache响应http://localhost/svn请求的是svn模块
* SVNPath 版本库目录,用于单一版本库管理
* SVNParentPath 版本库的根目录,用于多版本控制管理
* SVNListParentPath on 显示SVNParentPath下的版本库
* AuthType Basic 激活基本认证
* AuthName "Welcome to MySVN" 认证对话框提示信息
* AuthUserFile 指定使用的用户密码文件,由apache 的htpasswd命令生成
* AuthzSVNAccessFile 版本库的访问权限控制文件
* Require valid-user 有输入了正确的用户/密码的用户可以访问
创建svn.passwd文件
# /usr/local/apache2/bin/htpasswd -cm /var/svnroot/svnpasswd user1
New password:
Re-type new password:
Adding password for user user1
* 第一次添加使用 -cm 同时会创建文件,此后可使用 -m 创建。详情请参阅htpasswd --help
# /usr/local/apache2/bin/htpasswd –m /var/svnroot/svnpasswd user2
New password:
Re-type new password:
Adding password for user user2
创建svn.authz
# vi /var/svnroot/svn.auzhz
[groups]
group1 = user1
group2 = user2
[/]
@group1 = rw
@group2 = r
* =
补充说明:
如果使用apache+svn进行版本控制,那么在创建版本库时产生的conf目录里的配置文件时没意义的。
对版本库的访问时基于apache平台,所以无需启动svnserve,除非同时想采用svn://访问,但是svnserve默认只能开启单一版本库的访问控制,因为svnserve启动必须指向相关版本的目录。
无论是单版本库还是多版本库控制,如果开启了访问控制AuthType Basic,那么用户的管理和权限都在AuthUserFile和AuthzSVNAccessFile指定的文件里。
单个版本控制时,在AuthzSVNAccessFile指定文件里使用[/path/to]配置用户在指定目录权限
多个版本库控制时,在AuthzSVNAccessFile指定文件里进行分组,使用[project_name:/path/to]配置用户在指定版本库的指定目录的权限
相关文章推荐
- 用 Apache 和 Subversion 搭建安全的版本控制环境(linux)
- linux架设Apache + subversion版本控制(强力推荐)
- 用 Apache 和 Subversion 搭建安全的版本控制环境
- 使用SVN+apache搭建一个版本控制服务器
- 用 Apache 和 Subversion 搭建安全的版本控制环境(IBM)
- SVN+apache搭建一个版本控制服务器
- Linux系统,Centos7版本下搭建postfix服务器及其相关配置应用
- linux 系统中搭建web、www服务器时出现apache 服务不能启动的问题
- 在Linux系统中安装Subversion版本控制
- linux上安装svn版本管理系统(subversion+apache+jsvnadmin)
- 用 Apache 和 Subversion 搭建安全的版本控制环境
- Linux下apache+svn+ssl完美结合搭建安全版本控制平台
- linux与 windows环境的Subversion版本控制企业架构搭建之svn+ssh
- 用 Apache 和 Subversion 搭建安全的版本控制环境[摘]
- 用 Apache 和 Subversion 搭建安全的版本控制环境
- windows下安装php、apache、mysql,并使得外网可访问内网的机器,搭建svn服务器提供版本控制
- 用 Apache 和 Subversion 搭建安全的版本控制环境
- 用 Apache 和 Subversion 搭建安全的版本控制环境
- 利用Apache+Subversion搭建Linux版本控制系统
- Apache2.2.4和Subversion1.4.4搭建SVN版本控制平台(windows环境)