linux+apache 的svn服务器端配置说明
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash

·
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 不兼容 */
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
安装成功。
四、安装 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-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2
--with-ssl --with-zlib
--enable-maintainer-mode
--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
// 进入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
// 其中userfile是通过
"htpasswd [–c] /home/svnroot/repository/userfile username password" 来创建的
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库
//"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
另说明:
1、 apache进程的权限:因为所有跟版本库传输的操作都是通过 apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没有访问版本库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon # //将 daemon用户改为svnroot,让apache进程以svnroot身份运行
Group daemon //将daemon组改为svn
Group daemon //将daemon组改为svn
2、 在 /etc/profile的结尾设置一些svn启动时要做的工作
start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi
/usr/sbin/apachectl start
export SVN_EDITOR=vi
3、 /home/respository/svnroot下的文件操作权限有给svnroot.




A beautiful web dashboard for Linux
最近提交(Master分支:18 天前 )
186a802e
added ecosystem file for PM2 5 年前
5def40a3
Add host customization support for the NodeJS version 5 年前
更多推荐
所有评论(0)