1、简单介绍:
iF.SVNAdmin应用程序是您的Subversion授权文件的基于Web的GUI。它基于PHP 5.3,需要安装一个Web服务器(Apache)。该应用程序不需要数据库后端或任何类似的,它完全基于Subversion授权和用户认证文件。(+包含用户和组的LDAP支持)
2、软件准备:
[root@localhost ~]#yum install wget unzip php httpd mod_dav_svn subversion mod_ldap mode_ssl -y
查看是否安装成功:
[root@localhost ~]#httpd -version
[root@localhost ~]#svnserve --version
[root@localhost ~]#ls /etc/httpd/modules/ | grep svn
3、配置apache:
3.1 如果你要使用svn内部认证,请参考下面的配置文件
[root@localhost ~]# vim /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 #vn的根目录SSLRequireSSL SSL访问权限 SVNParentPath /var/www/svn #Basic认证方式 AuthType Basic #认证时显示的信息 AuthName "Authorization SVN" #用户文件&密码 AuthUserFile /var/www/svn/passwd #访问权限控制文件 AuthzSVNAccessFile /var/www/svn/authz #要求真实用户,不能匿名 Require valid-user </Location>
3.2 如果你要集成微软活动目录或者其它LDAP服务,请参考以下配置:
[root@localhost ~]# vim /etc/httpd/conf.d/subversion.conf
LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbd_module modules/mod_authn_dbd.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_dbm_module modules/mod_authn_dbm.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_dbd_module modules/mod_authz_dbd.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule access_compat_module modules/mod_access_compat.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule reqtimeout_module modules/mod_reqtimeout.so LoadModule filter_module modules/mod_filter.so LoadModule deflate_module modules/mod_deflate.so LoadModule mime_module modules/mod_mime.so LoadModule log_config_module modules/mod_log_config.so LoadModule env_module modules/mod_env.so LoadModule headers_module modules/mod_headers.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule version_module modules/mod_version.so LoadModule ssl_module modules/mod_ssl.so LoadModule unixd_module modules/mod_unixd.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dir_module modules/mod_dir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so #装入SVN模块 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so #装LDAP模块 LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule ldap_module modules/mod_ldap.so <Location /svn> DAV svn SVNParentPath /var/www/svn SVNListParentPath On AuthzSVNAccessFile /var/www/svn/authz AuthType Basic AuthName "Authorization SVN" Authbasicprovider ldap #用于与AD建立链接的用户名 AuthLDAPBindDN "CN=test01,CN=Users,DC=mcse,DC=club" #用于与AD建立链接的密码 AuthLDAPBindPassword "*************" #绑定用户 AuthLDAPURL "ldap://172.17.224.105:389/DC=****,DC=****?sAMAccountName?sub?(objectClass=*)" #不允许匿名访问 Require valid-user </Location>
4、建立SVN Server仓库:
#创建存储仓库的目录
[root@localhost ~]# mkdir /var/www/svn
#文件夹授权
[root@localhost ~]# chown -R apache.apache /var/www/svn
#创建用户文件passwd和权限控制文件authz
[root@localhost ~]# touch /var/www/svn/passwd
[root@localhost ~]# touch /var/www/svn/authz
#启动服务:
svnserve -d -r /var/www/svn
5. 配置安装PHP&IF.SVNadmin
1 cd /tmp 2 wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download 3 unzip download 4 mkdir -p /var/www/html/svnadmin 5 cp -r iF.SVNAdmin-stable-1.6.2/* /var/www/html/svnadmin 6 chown -R apache.apache /var/www/html/svnadmin 7 chmod -R 777 /var/www/svn/passwd 8 chmod -R 777 /var/www/svn/authz 9 chmod -R 777 /var/www/html/svnadmin/data
#修改svnserve文件
vim /etc/sysconfig/svnserve
OPTIONS="-r /var/svn"
======> OPTIONS="-r /var/www/svn"
6.关闭防火墙,启动服务
1 firewall-cmd --permanent --add-service=http 2 firewall-cmd --permanent --add-service=https 3 firewall-cmd --reload 4 systemctl start httpd 5 systemctl enable httpd
7.配置:
浏览器地址输入http://ip/svnadmin出现配置界面,输入下图中配置信息,输入每个配置信息可以点击旁边的Test测试是否输入正确,最后保存配置
8.如果需要使用https,建议你使用公网证书,对配置做如下配置:
[root@localhost ~]#vim /etc/httpd/conf.d/ssl.conf
Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost _default_:443>
ServerName svn.mcse.club:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
#下面是两行是证书路径
SSLCertificateFile /etc/httpd/cert/svn.mcse.club.crt
SSLCertificateKeyFile /etc/httpd/cert/svn.mcse.club.key
<Files ~ ".(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]"
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
</VirtualHost>
9.配置HTTP强制跳转到HTTPS
vim /etc/httpd/conf/httpd.conf
RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
另外一场景,只安装服务器核心,通过命令行来管理
1、yum 安装subversion
[root@localhost /] yum install subversion
2、创建仓库
[root@localhost /]# cd /home
[root@localhost home]# mkdir svn
[root@localhost home]# svnadmin create /home/svn
3.配置passwd
[root@localhost conf]# vi passwd
[users]
test1=123456
test2=123456
4、配置authz
[root@localhost conf]# vi authz
[/]
liuxianan=rw
test1=r
test2=r
*=
5、使用用户分组
格式说明:
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
[root@localhost conf]# vi authz
[groups]
group1 = liuxianan
group2 = test1,test2
[/]
@group1 = rw
@group2 = r
* =
6、配置svnserve.conf
[root@localhost conf]# vi svnserve.conf
#匿名用户可读
anon-access = read
#授权用户可写
auth-access = write
#使用哪个文件作为账号文件
password-db = passwd
#使用哪个文件作为权限文件
authz-db = authz
# 认证空间名,版本库所在目录
realm = /home/svn
7、启动与停止
[root@localhost conf]# svnserve -d -r /home/svn(启动)
[root@localhost conf]#kill all svnserve(停止)
客户端安装
https://www.cnblogs.com/ygj0930/p/6623148.html
其它参考链接
https://www.runoob.com/svn/svn-tutorial.html