CentOS7 SVN安装配置(支持http)
SVN安装配置环境LinuxCentOS7.5最小系统安装网上各种安装教程,不是缺胳膊就是少腿,好心塞,这下终于齐全了。1、安装yum install subversion2、查看安装位置rpm -ql subversion3、创建版本库(多库)mkdir -p /var/svn/repo/repo1mkdir -p /var/svn/repo/repo2svna...
·
环境
Linux CentOS7.5最小系统安装
网上各种安装教程,不是缺胳膊就是少腿,好心塞,这下终于齐全了。
1、安装
yum install subversion
2、查看安装位置
rpm -ql subversion
3、创建版本库(多库)
mkdir -p /var/svn/repo/repo1
mkdir -p /var/svn/repo/repo2
svnadmin create /var/svn/repo/repo1
svnadmin create /var/svn/repo/repo2
复制repo1/conf到repo目录下
cp /var/svn/repo/repo1/conf /var/svn/repo/conf
1、配置密码:
vi passwd
# 添加下面内容
[users]
admin = admin
zhangsan = zhangsan
lisi= lisi
custom = custom
# 保存
:wq
2、配置权限:
vi authz
# 添加下面内容
[groups]
admin = admin
repo1 = zhangsan,lisi# 多个用户用“,”分隔
custom = custom
[/]
@admin = rw # 读写
[repo1:/]
@repo1 = rw # 读写
[repo2:/]
@custom = r # 只读
# 保存
:wq
3、配置svnserve:
vi svnserve.conf
# 去掉下面项的注释,进行配置
anon-access = none # 表示禁止匿名用户访问,可选值none,read,write
auth-access = write # 表示授权用户拥有读写权限
password-db = passwd # 指定用户名口令文件,即passwd文件,可配绝对路径
authz-db = authz # 指定权限配置文件,即authz文件,可配绝对路径
realm = svn # SVN项目的认证域,会在认证提示里显示
# 保存
:wq
4、SVN版本库位置
vi /etc/sysconfig/svnserve
# 添加下面内容
OPTIONS="-r /var/svn/repo" # 默认OPTIONS="-r /var/svn"
# 保存
:wq
5、防火墙配置
vi /etc/sysconfig/iptables
# 添加下面内容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
# 保存
:wq
# 重启防火墙
systemctl restart iptables.service
6、启动SVN服务器
# -d 守护进程启动,-r 指定版本库目录, --config-file 指定配置文件
svnserve -d -r /var/svn/repo/ --config-file=/var/svn/repo/conf/svnserve.conf
7、 SVN客户端访问
svn://192.168.31.66:3690/repo1
svn://192.168.31.66:3690/repo2
8、配置svn支持http访问
- 安装httpd,mod_dav_svn
yum install -y httpd mod_dav_svn
- 检查Apache,mod_dav_svn是否安装成功
httpd -v
find / -name mod_dav_svn.so
find / -name mod_authz_svn.so
- 创建账号密码认证(账号和密码与passwd配置一致)
htpasswd -cbm /var/svn/repo/conf/http_passwd admin admin
htpasswd -bm /var/svn/repo/conf/http_passwd zhangsan zhangsan
htpasswd -bm /var/svn/repo/conf/http_passwd lisi lisi
htpasswd -bm /var/svn/repo/conf/http_passwd custom custom
htpasswd命令参数:
-c:创建一个加密文件;
-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
-m:默认采用MD5算法对密码进行加密;
-d:采用CRYPT算法对密码进行加密;
-p:不对密码进行进行加密,即明文密码;
-s:采用SHA算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
-D:删除指定的用户。
- 修改配置文件/etc/httpd/conf.d/subversion.conf(一般没有该文件,新建一个),內容为:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/svn/repo # 版本库位置
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /var/svn/repo/conf/authz # 权限文件
AuthUserFile /var/svn/repo/conf/http_passwd # 密码文件
Require valid-user
</Location>
- 配置apache对SVN目录权限
chown -R apache:apache /var/svn/repo/
- 启动Apache
systemctl start httpd # 启动
systemctl status httpd # 查看状态
systemctl stop httpd # 停止
systemctl enable httpd # 开机自启动
- Apache 错误日志监控(访问报错时,监控错误信息)
tail -f /var/log/httpd/error_log
- SVN 客户端访问报错如下错误:
[Tue Nov 27 08:46:22.506678 2018] [authz_svn:error] [pid 28288] (13)Permission denied: [client 192.168.31.1:58874] Failed to load the AuthzSVNAccessFile: Can't open file '/var/svn/repo/conf/authz': Permission denied
[Tue Nov 27 08:46:33.520026 2018] [authn_file:error] [pid 28284] (13)Permission denied: [client 192.168.31.1:58876] AH01620: Could not open password file: /var/svn/repo/conf/http_passwd
解决:
chcon -R -t httpd_sys_content_rw_t /var/svn/repo/
更多推荐
已为社区贡献1条内容
所有评论(0)