1.安装http 、svn
yum -y install subserver mod_dav_svn httpd
2.配置svn数据库
创建库
cd /home/svn
svnadmin create test1
svnadmin create tes2
svnadmin create test3
修改库的所属
chown -R apache:apache test1
chown -R apache:apache test2
chown -R apache:apache test3
若:要给所有库相同的账号密码,且密码加密的,可以通过如下操作(可以给所有库指向一个账号密码文件(svnserve.conf中修改路径即可))
将库下的的db目录及下边文件权限改为最大
cd /home/svn/test1
chmod -R 777 db/
1)创建账号及加密密码
htpasswd -cm passwd test1(只需要第一个加-c参数即可,test1为用户名,会交互的提示输入密码,密码自动加密)
htpasswd -m passwd test2
htpasswd -m passwd test3
3.配置http
1)创建如下配置文件
vim /etc/httpd/conf.d/svn.conf(名称自定义)
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn> (此处为多个svn库的上层目录)
DAV svn
SVNListParentPath on
SVNParentPath /home/svn(svn库的上层路径的绝对路径)
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /home/svn/passwd/authz(所有库共用的账号密码路径,下同)
AuthUserFile /home/svn/passwd/passwd
Require valid-user
</Location>
2)修改http配置文件
vim /etc/httpd/conf/httpd.conf(需要修改的内容如下)
Listen 10.10.12.56:8443(服务器ip及自己定义的端口号)
ServerName 10.10.12.56:8443(ip加端口号即可)
4.启动服务即可
systemctl start httpd.service(启动httpd)
svnserve -d -r /home/svn(启动路径为svn库的上层目录即可)
5.测试
如图可以通过http方式访问了!
5.配置https
- 安装SSL模块
yum -y install mod_ssl openssl
- 生成证书
## 创建文件夹保存key
mkdir /etc/httpd/ssl
openssl genrsa -out my.key 1024
openssl req -new -key my.key -out my.csr
openssl x509 -req -days 3650 -in /etc/httpd/ssl/my.csr -signkey /etc/httpd/ssl/my.key -out my.crt
- 配置证书
注意:一下配置文件中的端口 与httpd.conf中端口不可相同,产生冲突
#vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/httpd/ssl/my.crt
SSLCertificateKeyFile /etc/httpd/ssl/my.key
- 配置https请求
在配置httpd的基础上进行如下操作
vim /etc/httpd/conf/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride None
SSLRequireSSL //添加此行
</Directory>
- 重启httpd服务,并验证
问题:
- 1.SVN开启HTTPS加密后(2.4步配置),所有的WEB访问都变成HTTPS,例如,localhost将无法访问,需要访问https://localhost
解决办法:
不在httpd.conf添加 SSLRequireSSL ,添加到subversion.conf
vim /etc/httpd/conf.d/svn.conf
<Location /svn>
DAV svn
SVNParentPath /u01/svn/
AuthType Basic
AuthName "SVN repository"
AuthUserFile /etc/httpd/svn-auth.htpasswd
# Authorization: Authenticated users only
Require valid-user
# 添加下面这行
SSLRequireSSL
</Location>
这样,只有/svn目录需要https加密访问,不影响httpd做web服务器
- 2:修改https默认端口443,修改
# vim /etc/httpd/conf.d/ssl.conf
把443改成其他端口