Apache搭建SVN的一些说明
本文运行的环境是64位CentOS7直接安装Apache和Subversion
yum -y install httpd
yum -y install subverion
如果/usr/lib64/httpd/modules下面没有mod_dav_svn.so和mod_authz_svn.so需要进行安装
yum -y install mod_dav_svn
配置Apache:/etc/httpd/conf/httpd.conf
# 监听端口
Listen 80
其他配置请参考Apache相关说明
在/etc/httpd/conf.d下创建subversion.conf (注:名字不重要.conf),内容如下:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
DAV svn
SVNParentPath "/opt/svn/"
# SVNPath /opt/svn/repos/
AuthType Basic
AuthName "SVN Repo"
AuthUserFile "/opt/svn/htpasswd"
AuthzSVNAccessFile "/opt/svn/authz"
Require valid-user
其中Location /svn 为访问路径,如果写成Location / 将覆盖Apache默认首页
SVNParentPath可以设置多个版本库的父目录,可以同时访问多个版本库。例如在/opt/svn下有两个版本库分别为dev和release那么就可以通过URL:/svn/dev和/svn/release分别访问
也可以单独设置SVNPath到具体的一个版本库,那/svn就访问指定的这个版本库
在/opt/svn下创建2个文件分别为:htpasswd和authz
其中authz可以从版本库中的conf目录下复制出来,具体的配置跟SVN原生配置相同就不再多做说明
单独说一下用户文件htpasswd,具体命令可以查询htpasswd命令的用法,这里只介绍几个用到的语句
htpasswd -c htpasswd user1
创建一个用户文件并添件用户user1
第一个htpasswd是命令,第二个是文件名,可以使用别的名字,当然配置文件里也要设置成对应的文件名
htpasswd htpasswd user2
添加用户user2
添加两个用户都需要在单独行输入密码两次进行确认,也可以一行命令执行
htpasswd -b htpasswd user3 123456
删除用户
htpasswd -D htpasswd user3
创建版本库
svnadmin create repos
创建了以后通过/svn/repos访问
这时候有可能出现db/txn-current-lock: Permission denied
执行
setsebool -P httpd_unified=1
chcon -R -t httpd_sys_content_rw_t /opt/svn/repos
chown -R apache /opt/svn/repos其中第一行只需要执行一次,第二行需要在每个版本库执行,具体代码的作用请查询SELinux
这时候重新访问有可能出现Could not open the requested SVN filesystem
执行
chmod -R 755 /opt/svn/repos再访问就没有问题了
如果要批量创建版本库,写个小脚本处理
if [ "$1" = "" ];
then echo 'please input repo name'
else
svnadmin create $1
chcon -R -t httpd_sys_content_rw_t $1
chmod -R 755 $1
chown -R apache $1
fi
页:
[1]